home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Textfiles / zines / Phrack / Phrack Issue 52.sit / Phrack52 / 52 / P52-17 < prev    next >
Text File  |  1998-01-26  |  76KB  |  1,453 lines

  1. ---[  Phrack Magazine   Volume 8, Issue 52 January 26, 1998, article 17 of 20
  2.  
  3.  
  4. -------------------------[  Protected mode programming and O/S development
  5.  
  6.  
  7. --------[  Mythrandir <jwthomp@cu-online.com>
  8.  
  9.  
  10.  
  11.  
  12. ----[  Forward
  13.  
  14.  
  15. About two months ago I decided to begin learning about developing an operating
  16. system from the ground up.  I have been involved in trusted operating systems
  17. development for over two years now but have always done my work with
  18. pre-existing operating systems.  Mucking with this driver model, deciphering
  19. that streams implementation, loving this, hating that.  I decided it was time
  20. to begin fresh and start really thinking about how to approach the design
  21. of one, so that I would be happy with every part.  At least if I wasn't, I
  22. would only be calling myself names.
  23.  
  24. This article is the first tentative step in my development of an operating
  25. system.  What is here is not really much of a kernel yet.  The big focus of
  26. this article will be getting a system up and running in protected mode with a
  27. very minimal kernel.  I stress minimal.  I have been asked repeatedly what my
  28. design goals for this operating system are.  The fact is the operating system
  29. itself was the goal for this part.  There was simply to much that I didn't
  30. know about this stage of the development to go on designing something.  It
  31. would be like asking a kindergarten fingerpainter what her final masterpiece
  32. was going to look like.
  33.  
  34. However, now that I have this phase reasonably done, it is time to begin
  35. thinking about such issues as: a security subsystem, a driver subsystem, as
  36. well as developing a real task manager and a real memory manager.  Hopefully,
  37. by the next phrack I will be able to not only answer what I want for these
  38. topics but have also implemented many of them.  This will leave me with a much
  39. more solid kernel that can be built upon.
  40.  
  41. So, why write this article?  There are several reasons.  First, writing down
  42. what you have done always help solidify your thoughts and understanding.
  43. Second, having to write an article imposes a deadline on me which forces me to
  44. get the job done.  Finally, and most importantly I hope to give out enough
  45. knowledge that others who are interested in the subject can begin to do some
  46. work in it.
  47.  
  48. One comment on the name.  JeffOS is not going to be the final name for this OS.
  49. In fact several names have been suggested.  However, I have no idea yet what I
  50. want to call it, mostly because it just isn't solidified enough for a name.
  51. When its all said and done, I do hope I can come up with something better than
  52. JeffOS.  For now, getting a real working kernel is more important than a real
  53. working name.
  54.  
  55. I hope that you find the following information interesting, and worth
  56. investigating further.
  57.  
  58. Cheers,
  59. Jeff Thompson
  60. AKA Mythrandir
  61.  
  62.  
  63. PS: Some words on the Cryptography article.  First a thank you for all of the
  64. letters that I received on the article.  I am happy to find that many people
  65. found the article interesting.  For several people it rekindled an old interest
  66. which is always great to hear.  However, for several people I have unfortunate
  67. news as well.  The next article in the series will have to be postponed for
  68. a few issues until I complete this operating system.  As is with many people,
  69. I have been caught by a new bug (The OS bug) and have set myself up to be
  70. committed to the work for some time.  I am of course still interested in
  71. discussing the topic with others and look forward to more email on the subject.
  72.  
  73.  
  74. The winners of the decryption contest were:
  75.  
  76. 1st message:
  77. 1st) Chaos at chaos@vector.nevtron.si
  78. 2nd) Oxygen at oxygen@james.kalifornia.com
  79.  
  80. Solution:
  81. The baron's army will attack at dawn. Ready the Templar knights and strike his
  82. castle while we hold him.
  83.  
  84. 2nd message:
  85.  
  86. 1st) Chaos
  87.  
  88. Solution:
  89. MULTICAST PROTOCOLS HAVE BEEN DEVELOPED TO SUPPORT GROUP COMMUNICATIONS
  90. THESE PROTOCOLS USE A ONE TO MANY PARADIGM FOR TRANSMISSION TYPICALLY
  91. USING CLASS D INTERNET PROTOCOL ADDRESSES TO SPECIFY SPECIFIC MULTICAST GROUPS
  92.  
  93. Also, there is one typo in my article.  The book which was written without the
  94. letter 'e' was not The Great Gatsby, but rather Gadsby.  Thanks to Andy
  95. Magnusson for pointing that out.
  96.  
  97.  
  98. Great job guys!
  99.  
  100.  
  101. ----[  Acknowledgements
  102.  
  103.  
  104. I owe a certain debt to two people who have been available to me during my
  105. development work.  Both have done quite a bit of work developing their own
  106. protected mode operating systems.  I would like to thank Paul Swanson of the
  107. ACM@UIUC chapter for helping solve several bugs and for giving me general tips
  108. on issues I encountered.  I would also like to thank Brian Swetland of
  109. Neoglyphics for giving me a glimpse of his operating system.  He was also nice
  110. enough to allow me to steal some of his source code for my use.  This source
  111. include the console io routines which saved me a great deal of time.  Also,
  112. the i386 functions were given to me by Paul Swanson which has made a lot of
  113. the common protected mode instructions easily useable.
  114.  
  115. Following new releases and information on this operating systems work, I am
  116. currently redoing my web site and will have it up by Feb 1, 1998.  I will be
  117. including this entire article on that site along with all updates to the
  118. operating system as I work on it.  One of the first things that I will be
  119. doing is rewriting all of the kernel.  A large part of what is contained
  120. within these pages was a learning experience.  Unfortunately, one consequence
  121. of trying to get this thing done was it becoming fairly messy and hackish.  I
  122. would like to clean it up and begin to build upon it.  Having a good code base
  123. will be invaluable to this.  So please watch for the next, and future releases
  124. of this code and feel free to contact me with any feedback or questions.  I
  125. will do my best to help.  I won't be able to answer every question but I will
  126. certainly try.  Also, please be patient as I have a very busy schedule outside
  127. of this project and am often times caught up by it.
  128.  
  129. I can be reached at:
  130.         jwthomp@cu-online.com
  131. and my web site is at:
  132.         http://www.cu-online.com/~jwthomp/ (Up Feb 1, 1998)
  133.  
  134.  
  135. ----[  Introduction
  136.  
  137.  
  138. Throughout this document I assume a certain level of knowledge on the part of
  139. the reader.  This knowledge includes c and assembly language programming, and
  140. x86 architecture.
  141.  
  142. The development requirements for the GuildOS operating system are:
  143.  
  144. An ELF compiler
  145.     I used the gnu ELF compiler which comes with linux.  It is possible to use
  146.     other ELF cross compilers on other systems as well.
  147.  
  148. a386 assembler
  149.     This can be obtained from:
  150.  
  151.     Eric Isaacson
  152.     416 E. University Ave.
  153.     Bloomington IN 47401-4739
  154.     71333.3154@compuserve.com
  155.  
  156.     or call 1-812-335-1611
  157.     A86+D86+A386+D386 is $80
  158.     Printed manual $10
  159.  
  160.     This is a really nice assembler.  Buy a copy.  I did.
  161.  
  162.     It is also possible to convert the boot loader assembly code to another
  163.     assembler.
  164.  
  165. A 486+ machine
  166.     You must have a machine to test the OS on.
  167.  
  168. Great books to read to gain an understanding of the various topics presented
  169. in the following pages are:
  170.  
  171. Protected Mode Software Architecture by Tom Shanley from MindShare, Inc.
  172. ISBN 0-201-55447-X  $29.95 US
  173.  
  174. This book covers the protected mode architecture of the x86.  It also explains
  175. the differences between real mode and protected mode programming.  This book
  176. contains much of the information which is in the Intel Operating Systems
  177. Developers guide, but also explains things much more in depth.
  178.  
  179.  
  180. Developing Your Own 32-Bit Operating System by Richard A. Burgess from SAMS
  181. Publishing.  ISBN  0-672-30655-7
  182.  
  183. This book covers the development of a complete 32-bit OS.  The author also
  184. creates his own 32-bit assembler and compiler.  Considerable portions of the
  185. code are written in asm, but there is still quite a bit in C.
  186.  
  187. The entire Intel architecture series and their OS developers guides which are
  188. available from their web site for free.
  189.  
  190.  
  191. ----[  Chapter 1 - Booting into protected mode
  192.  
  193.  
  194. The first step in setting up an operating system on the x86 architecture is to
  195. switch the machine into protected mode.  Protected mode allows you to use
  196. hardware protection schemes to provide operating system level security.
  197.  
  198. The first component which I began working on was the first stage boot loader
  199. which is located in "JeffOS/loader/first/".
  200.  
  201. The first stage boot loader is placed on the first sector of the floppy.  Each
  202. sector is 512 bytes.  This is not a lot of room to write all of the code
  203. required to boot into protected mode the way I would like to so I had to break
  204. the boot loader into two parts.  Thus the first and second stage floppy loader.
  205.  
  206. After the Power On Self-Test (POST) test this first sector is loaded up into
  207. memory location 0000:7C00.  I designed the first stage of the floppy boot
  208. loader to load up all of the files into memory to be executed.  The first
  209. instruction in the boot loader jumps to the boot code.  However, between the
  210. jump and the boot code are some data structures.  
  211.  
  212. The first section is the disk parameters.  I'm not currently using any of this
  213. information but will in future versions.  The next set of structures contain
  214. information on the other data files on the floppy disk.  Each structure looks
  215. like this in assembly:
  216.  
  217. APCX    DW    0000h        ; Specifies CX value for INT 13h BIOS routine
  218. APDX    DW    0000h        ;           DX
  219. APES    DW    0000h        ;           ES
  220. APBX    DW    0000h        ;           BX
  221. APSZ    DB    0h        ; Specifies number of sectors to read in
  222. APSZ2    DB    0h        ; Unused
  223.  
  224. There are four copies of this structure (APxx, BPxx, CPxx, DPxx).
  225.  
  226. The INT 13h BIOS call has the following arguments:
  227.  
  228. ch: Cylinder number to start reading from.
  229. cl: Sector number to start at.
  230. dh: Head number of drive to read from (00h or 01h for 1.44M floppy disk drives)
  231. dl: Drive number (00h for Disk A)
  232. es: Segment to store the read in sectors at.
  233. bx: Offset into the segment to read the sectors into.
  234. ah: Number of sectors to read in.
  235. al: Function number for INT 13h. (02h is to read in from the disk)
  236.  
  237. I use the APxx to load the second stage boot loader. BPxx is being used
  238. to load the first stage kernel loader.  CPxx is used to load a simple user
  239. program.  Finally, DPxx is used to load the kernel in.
  240.  
  241. Following the loader structures are two unused bytes which are used to store
  242. temporary data. SIZE is used but SIZE2 is not currently used.
  243.  
  244. The boot code follows these structures.  This boot code relocates itself into
  245. another section of memory (9000:0000 or 90000h linear).  Once relocated, it
  246. loads all of the files into memory and then jumps into the beginning of the
  247. second stage boot loader.
  248.  
  249. The first part of the second stage boot loader contains a macro which is used
  250. to easily define a Global Descriptor Table (GDT) entry.  In protected mode the
  251. GDT is used to store information on selectors.  A selector in protected mode
  252. is referred to by a number stored in any of the segment registers.  A selector
  253. has the following format:
  254.  
  255. Bits        Use
  256. 15 - 3      Descriptor Table Index
  257. 2           Table Indicator
  258. 1  - 0      The Requestor Privilege Level
  259.  
  260. The Descriptor Table Index or (DT) is an index into the GDT.  The first entry
  261. in the GDT is 00h, the second is 08h, then 10h, etc..  The reason that the
  262. entries progress in this manner is because the 3 least significant bits are
  263. used for other information.  So to find the index into the GDT you do a
  264. segment & 0xfff8 (DT = Selector & 0xfff8).
  265.  
  266. The Table Indicator selects whether you are using a GDT or a Local Descriptor
  267. Table (LDT).  I have not yet had a reason to use LDT's so I will leave this
  268. information to your own research for now.
  269.  
  270. Finally, the Requestor Privilege Level is used to tell the processor what
  271. level of access you would like to have to the selector.
  272. 0 = OS
  273. 1 = OS (but less privileged than 0)
  274. 2 = OS (but less privileged than 1)
  275. 3 = User level
  276.  
  277. Typically levels 0 and 3 are the only ones used in modern operating systems.
  278.  
  279. The GDT entries which describe various types of segments have the following
  280. form:
  281.  
  282. 63 - 56    Upper Byte of Base Address
  283. 55         Granularity Bit
  284. 54         Default Bit
  285. 53         0
  286. 52         Available for Use (free bit)
  287. 51 - 48    Upper Digit of Limit
  288. 47         Segment Present Bit
  289. 46 - 45    Descriptor Privilege Level
  290. 44         System Bit
  291. 43         Data/Code Bit
  292. 42         Conforming Bit
  293. 41         Readable bit
  294. 40         Accessed bit
  295. 39 - 32    Third Byte of Base Address
  296. 31 - 24    Second Byte of Base Address
  297. 23 - 16    First Byte of Base Address
  298. 15 - 8     Second Byte of Limit
  299. 7 - 0      First Byte of Limit
  300.  
  301.  
  302. The base address is the starting location of the segment descriptor (for code
  303. or data segments). The limit is the number of bytes or 4k pages.  Whether it
  304. is bytes or 4k pages depends on the setting of the granularity but.  If the
  305. granularity bit is set to 0 then the limit specifies the length in bytes.  If
  306. it is set to 1 then the limit specifies the length of the segment in 4k pages.
  307.  
  308. The default bit specifies whether the code segment is 32bit or 16bit.  If it is
  309. set to 0 then it is 16bit.  If it is set to 1 then it is 32bit.
  310.  
  311. The present bit is set to one if the segment is currently in memory.  This is
  312. used for virtual paging.
  313.  
  314. The descriptor privilege level is similar to the RPL.  The DPL simply states at
  315. what protection level the segment exists at.  The values are the same as for
  316. the RPL.
  317.  
  318. The system bit is used to specify whether the segment contains a system segment.
  319. It is set to 0 if it is a system(OS) segment.
  320.  
  321. The data/code bit is used to specify whether the segment is to be used as a
  322. code segment or as a data segment.  A code segment is used to execute code
  323. from and is not writable.  A data segment is used for stacks and program
  324. data.  It's format is slightly different from the code segment depicted above.
  325.  
  326. The readable bit is used to specify whether information can be read from the
  327. segment or whether it is execute only.
  328.  
  329. The next part of the second stage floppy boot loader contains the code which
  330. is used to enable the A20 address line.  This address line allows you to
  331. access beyond the 1MB limit that was imposed on normal DOS real mode
  332. operation. For a discussion of this address line I recommend looking at the
  333. Intel architecture books.
  334.  
  335. Once enabled the GDT that exists as data at the end of the assembly file is
  336. loaded into the GDT register. This must be done before the switch into
  337. protected mode.  Other wise any memory accesses will not have a valid selector
  338. described for them and will cause a fault (I learned this from experience).
  339.  
  340. Once this is completed the move is made to protected mode by setting the
  341. protected mode bit in the CR0 register to 1.
  342.  
  343. Following the code which enables protected mode, there is data which represents
  344. a far call into the next portion of the second stage boot loader.  This causes
  345. a new selector to be used for CS as opposed to an undefined one.
  346.  
  347. The code that is jumped into simply sets up the various selectors for the data
  348. segments.
  349.  
  350. There is then some simple debugging code which prints to the screen.  This was
  351. used for myself and can be removed.
  352.  
  353. The stack segment is then set up along with the stack pointer.  I placed the
  354. stack at 90000h.
  355.  
  356. Finally I push the value for the stack onto the stack (to be retrieved by the
  357. kernel) and then call linear address 100080h which contains the first stage
  358. loader for the kernel.
  359.  
  360.  
  361. ----[  Chapter 2 - The first stage kernel boot loader
  362.  
  363.  
  364. The first stage kernel boot loader is located in \boot.
  365.  
  366. First some notes on what is happening with the first stage boot loader.  The
  367. boot loader is compiled to ELF at a set TEXT address so that I can jump into
  368. the code and have it execute for me.  In the makefile I specify the text
  369. address to be 10080.  The first 80h bytes are used as the ELF header.  I
  370. completely ignore this information and jump directly into linear memory
  371. address 10080h.  It is my understanding that newer versions of the ELF compiler
  372. have a slightly different header length and may cause this number to need to be
  373. modified.  This can be determined by using a dissasembler (i.e. DEBUG in DOS)
  374. to determine where the text segment is beginning.
  375.  
  376. The two files of importance to the boot loader are main.c and mem.c.
  377.  
  378. main.c contains the function `void _start(unsigned long blh);`.  This function
  379. must be the first function linked in.  So main.c must be the first file which
  380. is linked and _start() must be the first function in it.  This guarantees that
  381. start will be at 10080h.  The parameter blh is the value which was pushed in
  382. by the second stage boot loader.  This originally had meaning, but no longer
  383. does.
  384.  
  385. The first thing that _start does is to call kinit_MemMgmt which is the
  386. initialization routine for memory.
  387.  
  388. The first thing that kinit_MemMgmt does is set nMemMax to 0xfffff.  This is
  389. the maximum number of bytes on the system.  This value is 1MB.  kinit_MemMgmt
  390. then calls kmemcount which attempts to calculate the amount of free memory on 
  391. the system.  Currently this routine does not work properly and assumes that
  392. there is 2MB of free memory on the system.  This is sufficient for now but
  393. needs to be fixed in the future.
  394.  
  395. kinit_MemMgmt then calls kinit_page which sets of the page tables for the
  396. kernel. 
  397.  
  398. Paging is the mechanism used to define what memory a task is able to access.
  399. This is done by creating a "virtual" memory space which the task accesses.
  400. Whenever an access to memory occurs the processor looks into the page tables
  401. to determine what "real" physical memory is pointed to by this memory location.
  402. For example, the kernel could designate that each task will get 32k (8 pages)
  403. of memory to use for the stack.  Without using paged memory each of these
  404. memory locations would occur at a different address.  However, by using paging
  405. you can map each of these physical memory allocations to a paged address
  406. which allows each of these allocations to appear to occur at the same location.
  407.  
  408. The page tables are broken up in the following manner.  First is the page
  409. directory.  It is composed of 1024 entries which have the following properties:
  410.  
  411. 31 - 12    Page Table Base Address
  412. 11 - 9     Unused (Free bits)
  413. 8          0
  414. 7          Page Size Bit
  415. 6          0
  416. 5          Accessed Bit
  417. 4          Page Cache Disable Bit
  418. 3          Page Write Through Bit
  419. 2          User/Supervisor Bit
  420. 1          Read/Write Bit
  421. 0          Page Present Bit
  422.  
  423. The Page Table Base address is an index to the page table which contains
  424. information about this memory location. When a memory location is accessed
  425. the most significant 10 bits are used to reference one of the 1024 entries in 
  426. the page directory. This entry will point to a page table which has a physical
  427. memory address equal to the Page Table Base Address.  This table is then 
  428. referenced to one of its 1024 entries by the 21 - 12 bits of the memory
  429. address.
  430.  
  431. The Page Size Bit tells whether each page is equal to (Bit = 0) 4kb or 
  432. (Bit = 1) 4MB.  
  433.  
  434. The accessed bit is used to show whether the page has ever been accessed.  Once
  435. set to 1, the OS must reset it to 0. This is used for virtual paging.
  436.  
  437. The Page Cache Disable Bit and Page Write Bit are not currently used by me, so
  438. I will leave its definition as an exercise to the reader (enjoy).
  439.  
  440. The User/Supervisor Bit specifies whether access to the page table is
  441. restricted to access by tasks with privilege level 0,1,2 or 3.  If the bit is
  442. set to 0 then only tasks with level 0, 1, or 2 can access this page table.  If
  443. the bit is set to 1, then tasks with level 0, 1, 2, or 3 can access this page
  444. table.
  445.  
  446. The Read/Write bit is used to specify whether a user level task can write to
  447. this page table. If it is set to 0 then it is read only to "User" tasks.  If
  448. it is set to 1 then it is read/writable by all tasks.
  449.  
  450. Finally, the Present Bit is used to specify whether the page table is present
  451. in memory.  If this is set to 1 then it is.
  452.  
  453.  
  454. Once the page directory is referenced, the offset into the page table is 
  455. selected.  Using the next 10 bits of the memory reference.  Each page table
  456. has 1024 entries with each entry having the following structure:
  457.  
  458. 31 - 12    Page Base Address
  459. 11 - 9     Unused (Free bits)
  460. 8 - 7      0
  461. 6          Dirty Bit
  462. 5          Accessed Bit
  463. 4          Page Cache Disable Bit
  464. 3          Page Write Through Bit
  465. 2          User/Supervisor Bit
  466. 1          Read/Write Bit
  467. 0          Page Present Bit
  468.  
  469. The Page Base Address points to the upper 20 bits in physical memory where
  470. the memory access points to.  The lower 12 bits are taken from the original
  471. linear memory access.
  472.  
  473. The Dirty, Accessed, Page Cache, and Page Write Through Bits are all used for
  474. virtual memory and other areas which I have not yet been concerned yet.  So
  475. they are relegated to the reader (for now).
  476.  
  477. The remaining three bits behave just as in the page directory except that
  478. they apply to the physical memory page as opposed to a page table.  All
  479. kernel pages are set to have Supervisor, Read/Write, and Page Present bits
  480. set.  User pages do not have the supervisor bits set.
  481.  
  482. The code in kinit_page creates the page directory in the first of the three
  483. physical pages that it set aside.  The next page is used to create a low (user)
  484. memory area of 4MB (One page table of 1024 entries points to 1024 4kb pages, 
  485. Thus 4MB).  The third page is used to point to high (OS) memory.
  486.  
  487. The kinit_page function sets all of the low page memory equal to physical
  488. memory.  This means that there is a one to one correlation for the first 4MB
  489. of memory to paged memory.  kinit_page then maps in ten pages starting at
  490. 70000h linear into 0x80000000.  Entry number 0 of the page directory is then
  491. set to point to the low page table.  Entry number 512 is set to point to the
  492. high page table.
  493.  
  494. Finally the kinit_page function places the address of the page directory
  495. into the cr3 register.  This tells the processor where to look for the page
  496. tables.  Finally, cr0 has its paging bit turned on which informs the processor
  497. that memory accesses should go through the page table rather than just being
  498. direct physical memory accesses.
  499.  
  500. After this the _start function is returned into and k_start() has been set to 
  501. 0x80000080 which points to the _start() function in the main kernel.
  502. _start in the boot code calls this function which starts the real kernel off.
  503.  
  504.  
  505. ----[  Chapter 3 - The Kernel
  506.  
  507.  
  508. The kernel is where all of the fun begins.  Unfortunately, this is the place
  509. that needs the most work.  However, there is enough here to demonstrate the
  510. beginnings of what needs to be done to build a viable kernel for your own work.
  511.  
  512. The kernel boot loader created the kernel page table and then jumped into the
  513. kernel at _start(); _start() then sets up the console, clears it, and displays
  514. the message "Main kernel loaded.".  Once this is done it runs the memory
  515. manager initialization routine 'kinit_page()'.
  516.  
  517. The memory manager initialization routine begins by initializing a structure
  518. called the PMAT.  The PMAT is a giant bit field (2048 bytes), where each bit
  519. represents one page of physical memory.  If a bit is set to 1, the
  520. corresponding page of memory is considered allocated.  If the bit is set to 0
  521. then it is considered unallocated.  Once this array is initialized the memory
  522. management code sets aside the chunks of physical memory which are already in
  523. use.  This include the system BUS memory areas, as well as the location of the
  524. kernel itself in physical memory.  Once this is completed the memory manager
  525. returns to the _start() function so that it can proceed with kernel
  526. initialization.
  527.  
  528. The _start() function then calls a temporary function which I am using now to
  529. allocate memory which is use by the user program loading in by the first
  530. stage floppy loader.  This will go away after I add the loading of processes
  531. off of disk during run time. This function sets aside the physical memory
  532. which is located at 20000h linear.
  533.  
  534. Now that the basic memory system is set up the _start() function calls the 
  535. kinit_task() function.  kinit_task() sets up the kernel task so that it can
  536. run as a task rather than as a the only process on the system.
  537.  
  538. kinit_task() is really a shell function which calls two other functions: 
  539. kinit_gdt() and kinit_ktask(); kinit_gdt() initializes a new kernel GDT which
  540. is to be used by the kernel rather than the previous temporary one which was
  541. set up by the second stage floppy boot loader.  Once the new location for the
  542. gdt is mapped into memory several selectors are added to it.  Kernel Code and
  543. Data selectors are added.  Also, User Code and Data selectors are added.  Once
  544. these selectors are put into place, the new gdt is placed in the gdt register
  545. on the processor so that it can be used.
  546.  
  547. kinit_task() now calls the kinit_ktask() function.  This task creates a task
  548. which the kernel code will be executed as.  The first thing this function does
  549. is to clear out the kernels task list.  This list contains a list of tasks
  550. on the system.  Next a 4k page is allocated for the kernel task segment.  The
  551. current executing task is then set to the kernel task. Next the task segment
  552. is added to the GDT.  This task segment has the following structure and is
  553. filled out for the kernel with the following values by me.  In fact all tasks
  554. will start out with these settings.
  555.  
  556.  
  557. struct TSS {
  558.     ushort link;            // set to 0
  559.     ushort unused0;
  560.     ulong esp0;             // set to the end of the task segment page
  561.     ushort ss0;             // set to SEL_KDATA (Kernel Data segment)
  562.     ushort unused1;
  563.     ulong esp1;             // set to 0
  564.     ushort ss1;             // set to 0
  565.     ushort unused2;
  566.     ulong esp2;             // set to 0
  567.     ushort ss2;             // set to 0
  568.     ushort unused3;
  569.     ulong cr3;              // set to the physical address of this tasks page 
  570.                             // tables
  571.     ulong eip;              // set to the entry point to this tasks code
  572.     ulong eflags;           // set to 0x4202
  573.     ulong eax, ecx, edx, ebx, esp, ebp, esi, edi; // set to garbage values
  574.     ushort es;              // set to SEL_KDATA (Kernel data segment)
  575.     ushort unused4;
  576.     ushort cs;              // set to SEL_KCODE (Kernel code segment)
  577.     ushort unused5;
  578.     ushort ss;              // set to SEL_KDATA
  579.     ushort unused6;
  580.     ushort ds;              // set to SEL_KDATA
  581.     ushort unused7;
  582.     ushort fs;              // set to SEL_KDATA
  583.     ushort unused8;
  584.     ushort gs;              // set to SEL_KDATA
  585.     ushort unused9;
  586.     ushort ldt;             // set to 0
  587.     ushort unused10;
  588.     ushort debugtrap;       // set to 0
  589.     ushort iomapbase;       // set to 0
  590. };
  591.  
  592.  
  593. The link field is used by the processor when an interrupt is called.  The
  594. processor places a pointer to the task segment which was running prior to the
  595. interrupt.  This is useful for determining access rights based on the calling
  596. process.
  597.  
  598. The espx and ssx parameters are used to store a pointer to a stack which will 
  599. be used when a task with a lower privilege level tries to access a high level
  600. privilege area.
  601.  
  602. The cr3 parameter is used to store a pointer to the physical address of this
  603. tasks page table.  Whenever this task is switched to, the processor will load
  604. the value stored in cr3 into the cr3 register. This means that each task can
  605. have a unique set of page tables and mappings.
  606.  
  607. The eax, ebx, etc.. registers are all set to a garbage value as they are
  608. uninitialized and will only gain values once they are used. When the processor
  609. switches to this task these parameters will be loaded into their respective
  610. processor registers.
  611.  
  612. The cs, es, ss, ds, fs, and gs parameters are all set to meaningful values
  613. which will be loaded into their respective processor registers when this
  614. task is switched to.
  615.  
  616. As I am not using a local descriptor I set this parameter to 0 along with the
  617. debugtrap and iomapbase parameters.
  618.  
  619. As I have mentioned every time a task is switched to the processor will load
  620. all of the parameters from the task segment into their respective registers.
  621. Likewise, when a task is switched out of, all of the registers will be stored
  622. in their respective parameters.  This allows tasks to be suspended and to
  623. restart with the state they left off at.
  624.  
  625. Switching tasks will be discussed later when the point in the kernel where this
  626. takes place at is reached.
  627.  
  628. Once this task state segment is created it is necessary to create an entry in
  629. the GDT which points to this task segment. The format of this 64 bit entry is
  630. as follows:
  631.  
  632. 63 - 56    Fourth Byte of Base Address
  633. 55         Granularity Bit
  634. 54 - 53    0
  635. 52         Available for use (free bit)
  636. 51 - 48    Upper Nibble of Size
  637. 47         Present in Memory Bit
  638. 46 - 45    Descriptor Privilege Level
  639. 44         System Built
  640. 43         16/32 Bit
  641. 42         0
  642. 41         Busy Bit
  643. 40         1
  644. 39 - 32    Third Byte of Base Address
  645. 31 - 24    Second Byte of Base Address
  646. 23 - 16    First Byte of Base Address
  647. 15 - 8     Second Byte of Segment Size
  648. 7 - 0      First Byte of Segment Size
  649.  
  650. As you have probably noticed, this structure is very similar to the code
  651. segment descriptor. The differences are the 16/32 bit, and the Busy Bit.
  652.  
  653. The 16/32 Bit specifies whether the task state segment is 16 bit or 32 bit.
  654. We will only be using the 32 Bit task segment (Bit = 1).  The 16 bit task state
  655. segment was used for the 286 and was replaced by a 32 bit task state segment on
  656. the 386+ processors.
  657.  
  658. The busy bit specifies whether the task is currently busy.  
  659.  
  660. Once the kernel task is allocated, a new kernel stack is allocated and made
  661. active. This allows the stack to be in a known and mapped in location which
  662. uses the memory manager of the kernel.
  663.  
  664. The user tasks is then created in a similar fashion as the kernel task.  In
  665. this current implementation the user task is located at 0x20000.  Its stack
  666. is located at 0x2107c.  Currently, this user task operates with OS level
  667. privilege.  I encountered some problems when changing its selectors to user
  668. entries in the GDT.  As soon as I fix this problem I will post a fix on my web
  669. site.  After the user task is created it is added to the task queue to be
  670. switched to once the scheduler starts.
  671.  
  672. Now that the kernel task and a user task (though running with kernel privilege
  673. level) have been created it is necessary to set up the interrupt tables.  This
  674. is done by a call to the kinit_idt() function.
  675.  
  676. kinit_idt() starts by setting all of the interrupts to point to a null 
  677. interrupt function.  This means that for most interrupts a simple return
  678. occurs.  However, interrupt handlers for the timer as well as for one system
  679. call.  Also, interrupts are set up to handle the various exceptions.  Once
  680. this table is filled out the interrupt descriptor table (IDT) is loaded into
  681. the idt register. The interrupts are then enabled to allow them to be called.
  682.  
  683. The timer interrupt handler is a simple function which calls a task switch
  684. every time the hardware timer fires.
  685.  
  686. The system call (interrupt 22h) is called, the handler will print out on the
  687. console the string which is pointed to be the eax register.
  688.  
  689. The exception handling routine will dump the task registers and then hang the
  690. system.  The jump.S file in JeffOS/kernel/ contains the assembly wrappers which
  691. are called when an interrupt occurs.  These wrapper functions then call the C
  692. handler functions.  
  693.  
  694. Now that the IDT is set up and interrupts are occurring task switches can occur.
  695. These occur when the swtch() function is called in the task.c file.  The
  696. swtch() function locates the next task in its queue and does a call to the
  697. selector address of the new task.  This causes the processor to look up the
  698. selector and switch to the new task.
  699.  
  700. You now have a very simple multi-tasking kernel.
  701.  
  702.  
  703. ----[  Chapter 4 - User level libraries
  704.  
  705.  
  706. The user level libraries are fairly simplistic.
  707.  
  708. There are two files in this directory.  The first is the crt0.c file.
  709. This file contains one function which is the _start() function.  This function
  710. makes a call to main which will be defined in user code.  This stub function
  711. must always be linked in first as it will be jumped into by the kernel to
  712. begin running the process.
  713.  
  714. The second file is the syscall.c file.  This file contains one system call
  715. function which is simply an interrupt 22.  This interrupt calls the console
  716. system call.  eax is passed in as a pointer to a string which is printed to
  717. the system console.
  718.  
  719. Both of these source files are compiled to objects and are used during the
  720. linking phase of any user code.
  721.  
  722.  
  723. ----[  Chapter 5 - User code
  724.  
  725.  
  726. The user code is stored in one file called test.c.  This file is located in
  727. the /user/ directory.  All this code does is call the console system call
  728. function provided by the library, wait a short amount of time, and call it
  729. again in a non-terminating loop (good thing, as I don't handle task
  730. termination yet).
  731.  
  732. The important thing to note is that when linking this user process is set to
  733. have a text segment of 20000h linear.  Also the crt0.o and syscall.o files are
  734. linked in as well.  crt0.o is linked in first to insure that its _start()
  735. function is at 20080h so it will be jumped into by the kernel.  In truth,
  736. _start() is the real main as opposed to the main() everyone is used to dealing
  737. with.
  738.  
  739. This code is the task which is created and run alongside the kernel, as
  740. described in chapter 3.
  741.  
  742.  
  743. ----[  Chapter 6 - Creating a disk image out of the binaries
  744.  
  745.  
  746. Once you have compiled all of the binaries and placed them into the build
  747. directory you will need to create two more files before continuing.  These
  748. files are called STUFF.BIN and STUFF2.BIN.  These files are simply containers
  749. of empty space to cause alignment of other binaries.  The floppy loader
  750. expects the user program to be 1k in size.  If the user program is not exactly
  751. this size then STUFF2.BIN needs to be created and be of such a size that when
  752. added to USER.BIN the size is 1024 bytes.  Also, the floppy boot loader
  753. expects the kernel boot loader to be 3.5k (3584 bytes) in size.  STUFF.BIN
  754. needs to be made of such length that when added to the size of the BOOT.BIN
  755. (kernel boot loader) file the size will be 3584 bytes.  In the future I will
  756. try to automate this process, but for now this is simply how it must be done.
  757. Once this is complete the shell program 'go' must be run.  This will place all
  758. of the binary files into one file called 'os.bin'.  This file can then be
  759. written to disk by one of the following two methods.
  760.  
  761. If you want to do it from linux you can do the following command:
  762.  
  763. dd if=os.bin of=/dev/fd0  (places os.bin directly onto the floppy disk)
  764.  
  765. or from DOS you can obtain the rawrite command and run it and follow its
  766. directions.
  767.  
  768.  
  769. ----[  Conclusion
  770.  
  771.  
  772. The kernel contained within is far from complete.  However, it is a first step
  773. towards creating a real protected mode operating system.  It is also enough to
  774. begin working with, or to refer to during you own work on a protected mode
  775. operating system.  Doing this work is simply both one of the most rewarding
  776. things you will ever do, and one of the most frustrating.  Many a night has
  777. been spent at the local tavern telling war stories about this stuff.  But in
  778. the end, it has all been great fun.
  779.  
  780. I wish you all the best of luck!
  781.  
  782. Jeff Thompson
  783. jwthomp@cu-online.com
  784. http://www.cu-online.com/~jwthomp/
  785.  
  786. <++> JeffOS.tgz.uue
  787. begin 600 JeffOS.tgz
  788. M'XL(`(-CQC0``^P\:W?:R)+Y"N?D/_3!<]=@$R(!Q@Y,<@\&G#CKUQKG9C(W
  789. M<WP$:D"QD%BU,'AF\]^WJKI;+^-'LH[WSAUW'JA?]>[J:G7!>SX:'?=?/ON1
  790. MA=6-;<-@SQB6[*>JL$:]8<+?K;K)F&F86^8SMO5#J5)E+D(K8.Q9X/OA;>/N
  791. MZO^3EO=2_ZYOV3SX06:P0O]FO;Y"_U5CJV;6H==LU(U_,?W/!0_$8Q#TN"6M
  792. M?\&'OF<_M!E\N_YKIEE[TO]CE)7ZEQ\52TP?!(=I&(U;]%_;WM[*Z'^K:H#^
  793. MC0?!?D?YB^N_S\==+H;LL-TY/7Z>S]D+5ERKL?91EQE[4$JZK9II&[`U4S=-
  794. M5$-=?6ZQXU.VUHB&]=^=LIWG^;7>X?/\\SQ(TH2^X].WS)A@PRZ(OHD/N:E_
  795. MR0;+,MN>J(HU*8.MZ(I;9NOM=:@Y7@A!PB2:8\&<H5`56Y2A056XJCS/MZM&
  796. MV[8#+@3@0KMKL3X/&30SU<Y<Q^-LP@..XW%(YV`?X'3:!P>,>];`Y3!:]O3/
  797. ML.?]X0GK^%[H>'.8$PU1"+`,+=>-Y_IFW//%^YV)B1^$<;?M>SP>H%@V;',2
  798. M-_KS$);*I&RY#XMCE,5A2!P)L,WT-#Y<EJL&E$EJE)L8]F4Z4^A_VJS&S8Z'
  799. M.(&+N"GD(L3&Q"C7]V=`?A)T`A&RD<`4\!#4@6I[GM<*:=[/H'8S!A6;QEO7
  800. M'U@NP_41.+/0#]@98B<+*;-PX@@V!??!!IPA.>SD=!_L/O392>"'[-"W(SLZ
  801. M>-L](WOJ-_\)C[^E\>!P/@RY37.4`4(OL(+V)X<>'O^#..VU?RFSSJDR0\`7
  802. MMYKID3"HC!VR%4T5"VF"5F8N9S0:(`Z#6[2`%[F</QH)(&@&!$%[0S<;.R09
  803. M;&[F8/G6`$1.TCX'#?/QE'NA7GX<Y4VRC%;C(+D:H\HH61FKRO-\!,,8[$CK
  804. M(B5>A9S-PH#]$_I^*[/JUJH.MLE,Z#2V;^BLWM99@TXRRA1SH36\T"RF.-S1
  805. M'(H4A^B*7M&R8"]8/>)[5L8N::"YV5Q,9#4I,6.'A"97LY0%N$]C8!-)8#8N
  806. M]QC_[SEK;.Q0'1VS,8)">K)AS1JO7DF=,8,0:>]N@"40364YH0S83#AE&<L!
  807. MM`Q'V`X\7W3ZK`C*+K'.R8%QUWSC^OPNS`?5E[YC:A^G[MP]55.]DR#:;+!B
  808. M]1O0[B2PTMR[\&*Y1K+5Z=\UZ3J?5O=[)O7[J,Y#,3Z`.(V6<7>7&5WL;L-_
  809. MZ]CL>.-UA$;6@ILK%G.O!_6^,_:L<!YPG/@18K!V>PO7S[,;XK^ARRVO,K`>
  810. MZ,![1_S'V%8M$__5MZO5I_CO,8K-7;91\0=?P-G`HXK\!XZ7JHNK*5G+4_EW
  811. M*RO7?\`M>\HKX?)A',`=Z]_<,O7Z-XWMADGG/_-I_3]*.<,HUG8"B#_]X(J!
  812. M^D/+\01$MYQ90O#IP,56"$M'$/]BJ[01#(S&T.CZL]D5&X#P\M*&*HSM>\P/
  813. MX!%#882!,;,#`>65/Y<!LS]`)!)';:>A$<$,#R)A.P]]$)`'/EH@TP.#T(%]
  814. M*4$KT#/U;6=T1?U$HT*(L-C<`Q+R%D"$@#I&4<GG]T=$B@7[X5S`MLG:2(1P
  815. MIC/@-;R:<;9.9,6O0=8KC`2U<"`V@Z/BW"6Z+#9R7)['B`V"]Y$3B!!=)UM,
  816. MG.%$#E8"3<H3AL(@*[BJL+:0N`&TQ;K'?98?6`+Z(=(>!]94GC$6?G`A@7D<
  817. M^H!'?>``N#@)!/'1\6Q_(9!,+CB1):G-)^8,`G\^GH#X+Z5ND"8X\LZ7"$&*
  818. M:>`OH=D*,P("W>>'_G3FN%;H^*#>$4V^X(''79#HZ=SS<-Q@[K@V!@Z:^=E5
  819. MPF9(-D@::E>BIPD)G2[P\)-'Y$/+8T-P1!"C6S!`7#!GBA8G65D$3AA".(P*
  820. MUT:(@Q*T1$&,UAJ$V@`+@^ME&%@>]^=""6H4^%,B)R:$+X=\%N:UT4O=@B5(
  821. M^BU8`$2^%8*B"4CES[D_KO3_D1H?!L>=\5\M^_ZOOEW;?O+_CU%HB2:69Z7R
  822. M&?Z2`3Q%?'^!DE[_Y.8>_!;PV^Y_P!>8U>WMI_N_1RFK]/_`Q_^[_7]]*Z/_
  823. M.HQ_\O^/43+G_XWXZ"]#GJ>3_[]W6;7^HV#W@7#<OO[-:@,JF?6_77^*_QZE
  824. MR(N.,VO0#_T9'J?J*Z]H]0T27M7*VM'QB>YXQP/+M>/=O+O+V/I;#"&/^^:Z
  825. M'./M7H5<G/"@#P<L_1JZ2F^KJ1N;H;?CBC!0(`Q][^F=BDM;S6-ZKA%W[[7/
  826. M^BR-WJCJJ4!PUPEZ7BCBJ;T([9D?6FZ?SGQ"=^_6=??@D-N.E8&\EZ49T"?)
  827. M>I7I/@OP!DEWFU7=_8Y;MDC`EK/C;L>VX8`;=7>IVU`7KFGB:]4;A@Q07]W`
  828. MN>0)!G3G*0>QHEK8BL[>,L2Y?6<<=U8CUH[[L<PT[68]!?BC'VB34*SI[G_X
  829. MKF=--59E+J?[G7>JKBQFSPK/\%U,:AC(VJS*,<_SN?9)YY<<0">YY5KR'8TC
  830. M7UYE+E4/R,'12ZPK?QZPXS[-[^KY!L[?9Q,+1"7FLYGKX&L3@%=A$BSWPN`*
  831. M;[/G>#*"J;T^3FVHJ>!%U*L.9$VA8<6&O`D\<#QN!26:MYM">2QO7`'!!P]6
  832. MG03=_S4'W*)]4Z6*-7FAMQMS7(LXGOKV'%^JB)@]^68&W^N@%A7W-#_#<:A8
  833. M0@:"D%FA?.?D^D/YIL<:A3R(!(JB/+`E(,F_J0#U069XT8\4N+XW1EE'+Z'P
  834. MC8T%YFPSUPH5'6DQ%,V4H%:)95>)A:[R=]-BZ<1BL6X0B\7,"X9.7+]<HVD)
  835. M:5!=,E555-&N:*-09*(#)8A8`8V\4XT=12^:)HRHXBF;E@SP6JW3[;,HJ7&2
  836. M%970THV9&2+LMGJ%J?C)Z)@FI)5ZZ`<\V2N9VE9,=N\FO:M(KZH)&0+[^[_V
  837. ME.SI.59$"_ZR/EF2/Y+B"ZA5I?C@.NX<[+/[E!;K.H+R+?8],)I@/L,4`YTW
  838. M<8@O\VB]T04];%RO5+9`.@D"\R)>Q;Y'-_?[9:8S(Z*VDS)+P6B!)Z.%P.4J
  839. MDCZ/<!FWXLI1:6'F2.AX<B'U=0I!<D8O0<8O*I>CNU^&?]<A;W?``&^451\L
  840. M8LA78^FNP-('+/T,E@Y@V2+W>A.6#KXMPB%DO<K;]V1B"4#I[\:B>S^?4CSA
  841. M\47D36Y5S<F'_CO9?'W8#K]AT&GO;.]&>M,"<J9S]#ZX_(?<QLOP@(?SP&,C
  842. MB/_B3*+[0<,7P+!8F!/RJ6!?\%(#DSIP]7P;(%^_"9=V+-VGEE9DALCEV`=O
  843. M"H.C]"#,0;LGEC/DTXF6$1L@KA0&CCY`OTC'@"%KW-V#\K5P(HUD+WX-SXKM
  844. M9BEM<*A&K;7](QDQF36EUO<="637LF6$F</4,=RU]J&B6IM9DG9_D8E=R;;V
  845. M.YG?E6H#TM=KZQG<Y-N@EC,;T=,K6M,2;S/C'6#!'._M]7MG3.5A*'>&R8%0
  846. M3N9A9V(%(FD`E$CT7W,'A(T&8SM!>%6I5-BI/P"+P9LKV@_EN#T\=;$9^$Z5
  847. M%C1<@L1@+]")5%3MZJI%U5X_D^<89;QAH)%(<\,X0E719<-@5^<:(2][L%='
  848. MB4]TOY<A9%<2,@2U8)6$]^5W=N1/?33'B,+=-(6[MU"XFZ9P]]X4PNX>7".P
  849. M<T\".VD".[<0V$D3V+DW@7O@C,-)EL+N/2GLIBGLWD)A-TUA]WX42HQ-F;^:
  850. MB_-7I>7CJ*;<O_:/FK0I=.$?;E6XX!"P3F$;+N6XCKXUIB`2+]]DK$-6/[R"
  851. MJ$E&GS3)SD[JZTD3.!')A2(=4,07'/5HRBD.<#QFJJU8#<$U3U&62MM#=[J.
  852. M8]?9WMP;TO:+CA66.'F<W!(J*+[!,IJCHB#PKX84PUN_*;V"]%*Y&1R/[:5Z
  853. M&%)V'JD2$TH-B;LSX<J%6QX#5TL$@H9WPX4O>3[RRW0CC/)F!"+MRV34X(B9
  854. M"Z<)`-(C:!I4UL?E4@ZNMZ[HC;V;=J):\4A(,R%7X?R.8K;Y4%H*93-"&QJ.
  855. M$CA=FIKRAE0-)Z[=B.LV[*0+>2$MV>W"DTI(HP&?N$@E=W,AC<L;!AR#%9U=
  856. M"4%%,K;(P8F!QE<5(GVZDTFJF_CR@`E?S]ZL1BFG,LM4JC;$6!ACD$O+G=.-
  857. MN:+&\89LZ,9J`4A.3%'&CM?TN@6VP1PD_2-D&^_(+6ER'"Q778R'>.:'.1(\
  858. MM'A,+!R\*U81D1*6]WND'QKY40*$@!^!(D`@"\-HF+0,%34JB13IL2=9-8"I
  859. MTS(R_J[@'_%%1ZU`33:"3Y,3KU'MKY!1"?A7'OB4$JYDX<VG`ZZ7'A*@QO4C
  860. MB$3`FIDQP-0*SK"3(#+]18"A5&,/;^R'4LS#>1"@CA)^14Q@/0/%^(V#Y7`R
  861. MILI@DK`A16,;JJ9.?=``8H[2<\7$C:!J'Z[,ZL2UACPE.9G2H/S"MTK06"U!
  862. M0YOI))=9,==)OZ^D$XL3/0'ES>,?';ZHJ.?@N(O!/#[J%'-T,NT#%:_]*MOZ
  863. M[XY/SVC!7X_"C-[D>K@&X?[VBCB,8*H$=0DS#J>Z<:8_Q,'74OR_.R!LK`H(
  864. MG^.7"++Q%6U;T;YKQ<%5W`%R'$G2?DR:[@\KJ][_/W#ZWSWR_XPX_Z]&^7\P
  865. MX>G]_V.4;\__(QOY*Z3_1==@3]E__[?LOU@T3\E__VIEE?]_X/2_>^3_)>]_
  866. M&Y3_8=:?_/]C%%JD\0)]2O_[BQ6U_G$'_V$_`G/O_+]:W6A4,?XS:[7&4_[?
  867. M8Y2D_B%:<?S*\,%QW/7[#\:VJ>-_^6Q6MXVG_)]'*2\WV$_[=I,IW9<OF5FA
  868. M/\Q\]6K[I6F\-&K,:#1KU:999V+!0Q?CG]YRQGYB&R_S^37'&[IS"+X+$L2D
  869. MD,^#2"%:QT"/66$8L-?,++/9$CX-^+R"SVJ]I4<-X9C/-@2$>Q#2O69%62^Q
  870. MSO'1>;]SVNL=98;.?(%Y,2N'LDVV8VQ4ZQO55D3&I>_8#.#[KCN?%;%68OD_
  871. M\CD([XH$ZS53V#>9V3!:C!I_3K0BR"T`23V;FZ5\+K<AI[[`&26`0%2U5@/5
  872. M%-T-^`^$+)\!P#I;;^D&8AB%"2U?\U_S>>(*1'Z.C442=0FY4@*W6JE!&`\'
  873. M"=YQO`,BNDYOF3FOC9;SLR;-N94L:HC(RDD=PW.DY%Q6&$40Q8Y10@5]S;_<
  874. MB$F<S<.AU.AP0IPX(ZBRUX#PL[=.-(Q]"/E1CX9$%Y,PG+3RURF:+3<W6P0(
  875. M"7L-X@8P-+\)T")B:<`5#JC64;>YR%A*V,M=P;%U=D70KG,TNP*.-F=+8HJT
  876. M`PLCR9=0EBJ(+S@?NKP(E3\DZ@V18C(G))J86Q.K7U,BWU"#KK&L>5[!M-DD
  877. M+B*NK[&=X3MB/.+\+M:1R*]2K<D5.QO,1_]\]5LKGQ+*K#CWA#/VN$V.8E9*
  878. MV27-V?E-T2KMU'F]W7+>H'6^>$&BHD$.#BH:2V./_0=`T;RKKC?L58GIRN9K
  879. M_/V8%Z:AU9KJ,<BL9^S-F]>L+@TLTA^.*Z67%+0O8Q:(T27R@%L:@36(L"50
  880. M92SWP$F\>8-@L5O39R3I,U+TX;"80B.F,`)O)L`;>Z4T9#,)V;P%LKD"<E6)
  881. M'1LR$L`F:=__WQO74WF0<CW^FSPXCKO>_YK51A3_F=4JQ7_FT_O?1RGI^&]"
  882. M\5\UCOUV0!?-ZG;3K*V._4:>S4?L'`*P_>/S=_DUJ.%O:$4-44L<HN7`71G&
  883. M+F;:I;MW#]J=_]0'PDS/AYX^*IJIGK<4],E23?5T/K5U!ZNE>DY[W>C@64_U
  884. M'+;?]H[.VM2SE>KYU#LX./XHYS12/1_?[9]IXK;5]G`Q"V`C&ZE=?S0-RXQ5
  885. M*A7PT:NBMM;*,*UU0V34NB&R:-V^N;;NV+A:L2YPS&@\&!='X_)@7(K)+6+M
  886. MYY]9G?T/@\X23>*>[8P8F)'6.7O:'/Y$)>G_?XCS?W;G]W_P)X^T_S>W\+>`
  887. M8!.H/?G_1RF1"V_W#\_3/CQJB9KZX`.Q:??3^?L/AR?[1V_S&.NS#7D_1K<C
  888. MJ1M$FN?@I9&([@^7.PVV?PQN283!G)*S!$)PO,%+QUO`/_>E/P\'^-\"_W.C
  889. M"Y<"S,#+G4O0!$XKZ)LH_,X%P@"'*A"*0#""X`@")`B2<$L5]DE=+UFN\"F%
  890. MMS"SZ)JK@!`TZ`@R=+C\189>1#0XGR&]\#\X]@K,38L!/C'-9LHM+U375OY@
  891. M-!>8VNN-F\P)UU7>,-ZLN0YFF=L(`L86K1*;`--T;TJ75G3;N*!OF%@`U+K@
  892. M@HV'0T;I\3##GX7.U/D=QR,,2[`%AVGP"2<VX0S4K55Q4&)A<(4RQ+LSVA'P
  893. M,HT:]'=7P@E4$0I=%.(T^3#&B\R%$TZ8<!V\2+RT`L>2\L!1"M,5DH<`+80Q
  894. M=6!Y70!D?\KI>@\E]3*V&LN[H*3F]X!9`$2/M8-0V!;^U)W\UL:`A_0-%.#/
  895. M&[\8.71#Z9&D,-%JX:M?F/PRG\Y$4]U8H@&M"WE!Z/D>7P(9F#=#7U$1G$^%
  896. M$O5X;@6@(<[3>`3CET`!Y@U:`@4^!*'@-9]4\[&\T967IJBI,MM?MYGK7.@K
  897. M2H%9'&!#A/Y%"G\3(>RS$><NL@<:AKW8&H&&!I@C)!DPECL&*ZJOYB`\&(`_
  898. M.8E7N"5)12YWX'ASD=>1&*[B%0LT6L[GU-D]_G@$(Z!JB>GY.7Q>^GBMZ_+S
  899. M\V(!LXC,T6?/;'X.X^="";9Y?!?P3;!0!^QOEEO^"9DA&!@J9+Q)#"-9C0S$
  900. M<B^47,"2I&A`&8$O*LJ08I*./YR915%>EMCG/%^"+C&+@'[1E>S\_!R@K*V)
  901. M./)9RIS`,HM:I"6ADDKLCPSL*L`69EE4$?XJCAFQ7&!K@A78WPI,F*Q@E/&A
  902. MR@IF(0-.0EM*8#'I252%1:'$FO"G8!58D6@ME5G!A@J1"*?QKXGI:VO#:Q!6
  903. M`G!NAG`^^PXBDHJ[1M(*B'<3E8&8%-W^$<"]KN+3WMF'TZ/SLT\G/1CD>"E%
  904. MI]2:'GK92@._CY8=+Z%DU&U9:[N0!B9A.1CY$S1%>P*/DF[A-<KB_)*>(T&P
  905. M\MJ:PT`<ZGLJ0*R2+@$"X:9A70?EW!_6^>P["$OKZ48RL[#O1>C-L--"[J\R
  906. M!UKQL&/?8`9E.6`#OY08)-8_?G$1]N.Y%R+(/U8Z-C"`(?AD)&D&_SL8AH`U
  907. M?,XC2UU@`V&B1;\>0D4!2TJO#':B1X%?T&-*&<Y@P=S,&@8S-_(&$1CL60_&
  908. M(>)*L-A_*!:3ZS!U&LWC81*7SZ!<&!0D+*-40G>OFW$WF5/<FH!R.V224`1Z
  909. M@19^'?3BNT##"5M.=V^:+CVB8@AY+*D620?1IIO<<AD`EO)Y:=V#DGI8Z`>W
  910. MI."I3GI:1$_8+7?/(S_D,F*TYURG?&$4>7Z.&1X0]IV3K4``=#XKEBC53%">
  911. M'LYF+S!.7@_5]]S0TAT;\[&4(8[T5RN*3J@3U#!0_%_VW@8\KJ-*$+VV)5OJ
  912. M*,@A"1A(EAO'BKME_?3M'[5^8A-;:CN>6+*PI"2[P:NTU%?JEEO=G?[Q#\2)
  913. M'"6#VT*,V3?+SNXR[^$O,_OXWGLSC^^;V2$+\S%VPL8+S%M"F'TOP'L[`69"
  914. M&WF&P++!!"]ZYYRJNK?N3TNR(RL!^DI]?ZI.G:HZ577J[]0Y8RC^#DR=XT!Q
  915. MKG@&\=#9:D@%1),[P7MU0@E34'V\D*?!)1>6,U+(^WE!?QQ48*?1PIC%1SQ>
  916. MKVMF>%>BWG./X"OWJH%PAT_]$(2II['`V+@7,?E:!&RWZ67U\9F5%L;]WK<8
  917. M-:`8YQ[=A@L/Y+%D%)"M5E81KE)F[7[6[(+O*F38P&)F63A9,WULE;)\K'+I
  918. M'ELBN\?>>F:/.4KWF&M&5ZUTCRU5NL>6+-UCJU&ZQUQ*]YA[Z:96*<NIRJ6;
  919. M6B*[J;>>V92C=%.N&5VUTDTM5;JI)4LWM1JEFW(IW91<NFQ6]W:O8U6OZ[OD
  920. M]=\C>,A*7WT!L&7/?X0CYOY?1P3/A?L[.JKKOVMQB?T_4?;V#<"@JFG=X4!W
  921. MR.^V`0BA@2S)6(I./.+JC$4D[-Y\(1[+3;8E=LER8DQ(S$UNS-R!FM94__'@
  922. M1*<JNP7`+3#1:8'#$Q,$S[?>CL9&\VG+]MM8"VV!I5I4:3L.P%))/&Y_%,;B
  923. M5OFR(TP&(MQA"*RX;.?AG)[+>LBHF'P$=Z5#I%YT;H$P7$!#3A_%U`(QH7\+
  924. M3PH'`J[JE5R,[;XC%CD,L>XWD<GPM.)R^R@K$[:/R%-)HUH<:`J:[5"#/O5Q
  925. M6FAL467''A->"QA>+,H*%U2#+FSA8UF8/G2V#K1J6`\,-&8$.S09O2,Y*,H2
  926. MF;`G![*)!3BI%_KTL>(D'@NT9(WDJ53O739\88;/K_EXG'P-08*2)'J`N"9V
  927. MC(X)H2V//^#WR7FB2N*#T!+EJ*#>H=VDS/^G8S#?6GWQWV7/?X0BAO[_8(#I
  928. M?PU7Y7_7YG)CP^WM:B\[?)7-D-(8G+4S_6?D@-M16%>$EC$\>\=:D;?Y"&-[
  929. M/BYKNE/U<@_NXB..@U>G7_!7SBFMBU1CJ00NPM=;Y!@*TUD4#H0$<O-,M+L(
  930. MW4^63H?A=EB>4J=/9W(G//4`#TDX0DRQ7Y_NGYPN>!$Q1]*+>VNTW,!2X#,7
  931. M-?@ZA)1-3_T1`882B2??>6WY>BY+^]>G;T3S7Z[]A_PA4_XK2.<_`L%PM?VO
  932. MR66V?RQ]]W&9Z82G8_/$(ZR--8V-*W:\1W+'YGH$<-+2+S89/I:BMHC-U=;>
  933. M4YEQ:N]<`KB^""_!``RW4K%"3SVVUD'D/;2I2ZW=.*YIP(Z.YX(,=%B'AD_[
  934. MTV-<8QYXR7!^DG"M!.IG[&%?+C;&CLGB)G`AD=-UBIJD`QB+H0`F\\&U4D\]
  935. M)EEPOF:?ZO6&_%T=S5Y.I';\`C[8JI)ST&!&*/M%:B(P2IFA<=U1E-NDGN?"
  936. MT)0#-0D3=M0G"&]T,`'%HMV12?2B%#+!:63"%*(_EA5,CYWP#O7O00$"/&F,
  937. M$@9I4N&(9C*)Q190+\DQ=1`P#X^E!$K2;+A#)<R8.Y3K@$%FT!:)YN=T)#R)
  938. MY&1"D).=G<:CQ^8)8U5@#_A#G0)[4MV%:#X$_*0;*,Q*U@?#1^Q:`$C$[J/H
  939. M593F-OH-TF:)).DS3OQB,G!Y&GNYI&X*JZ!\@504K&RY9#>/4[W'R/IAEE<&
  940. M%-8"+F"8!P'FL='=4N8%ZBB#>_M03M*2?XB)R7X;J-'7)\=M0@:<D)PZ%0($
  941. M70,$FN4@)BFA6<&X>A+%&VB4P,8'?*O!7NVP?<H4H::-*TIL#\J[%=5K-,%L
  942. MH:D)(+=V=V_-X18AO/M$(XF2_4_$C$(J]1"0AX(0&-"_M7OK3AZ*!N;UO+'3
  943. MXW%C\.''(P!F:!ZG7XK3S^)DDP8:PMMXFV50X<[++`&.QE(]T@$')"!7E#FA
  944. MCNFII'Z4B>$P;4(Y$B&"=VC(T!@U:(P&T_'4<U:"[1>%:=%TX(1@(\AOF<*!
  945. M:7HU>56&5;/\"2BM:4\])`@'1Q8>+0VMI`9H5DP8!)D,'+/)PQQB<ZOEHVT3
  946. M)&7T.%FYQT`"LAEW/\-C'OC"PK,$0V4XC!H:&BCNM?L+K`#".!XDN0^%@U#5
  947. M23N*0.FD]839H84$ZS%@0Q::4Y@](_N`;PM%5"C@A7MF6&[97":KYU(GU!-Z
  948. M`57\#>AZ7FA>F$@>U^,><?"'I?5>7-^@M%)&ZUD>'R%/;(%:A!]DL7K<A3X^
  949. MXW00ZL9!.+,^,.P[J)G6&]G>0:01];Z>`UD<3S)%.T;QB+!41F_W**5ZW:C+
  950. M/OZ_$0+`R^M_D,?_(1K_5^U_KLVU1)\&O/WM3EWUNM&7W/[%PO1J+P(LT_[#
  951. MD0YS_R?LQ_-?P5!5_]?:7&+_QRQ[]QV@KFY_5X4=(%0*GB.)<`S3HNZ!N71:
  952. M_9TV=4B`WRL"WI?6,Y-MXYGI78X]!$]SL[H79]@X]4*A:8":UG/CN+H'M&]3
  953. MU:$$*=L$?'IZ*G.BXFX$8$)D_<#,IB&PL=UBKNZUH7]3'H9R_$0!7DUQ_#:9
  954. M(3H=!Z=@`&6T$S!@8LH652_.7M&:@8_0C*.@%"0M-HYS(+6I"-\6KJHV/0Q.
  955. M:F=%-*JGXJZ9O#$%8:=CV4=P=,@V)K;[M[>HVS6\!;:3BFNXA?`6WDX*#N$6
  956. MV=["8#OQJPMO,;R-X6T<;W&\Z7B;V*YZ3O:\A8TTE>^8(%BZ)<FV10Q:%,W=
  957. M,8:@T!*':?-AYBR.+]\%:-7''U?O&L.[-X7K&SX?W[SI8<'-;1GPO^<>2HJ/
  958. M$X6C02<Z5M^$I^KEZ@$>>)I==L)HO:VM*8AG#*8!1ZR^E@^F-Y70V_".X[;0
  959. M]OSV;MP.X_6*[X+)%\Y!@&A0P&QKD$]I>AR`<OX@=\UC[.`_)+Y%3;6V.O;C
  960. M'`A<LN*`8XD>YXFFPRY2979)/J/>LG'SU-HSZI+-5<[*<9:53C6>G$2E@T;M
  961. M,YLQ;FE,NN<.*@)6N$Z4$T^Q!386M7K2`5NTY4]N\R[Y=%%@8`>AG+)E.=[6
  962. MB_QT_V$G/I8$KJO`[N%,[=B.G9UNQ`=7NV,EZKM0.RXJCLAX)<*F;<1RIQ&0
  963. M/XTS8[DM6_.[4VU-N]."U[CMK=O=_1UMW`W(24BF*J%R<EQ2XR0^S=6+`2>E
  964. M74A:9"25:U,EHBY=`Y?)6S'0[:0_(.QR9BB>J4"`.%>^452;5`U*;8>I2,*9
  965. MUO:=JE`_X8@7>(`+Z1D'+"('3*I0T?T5N>2.'6P=O$*CXG4#D[NJE>,M\*F'
  966. M63$'''RJ4V)32["HP$I8U,I:':<.9SG0`F6%)2X$L\*G*[,HX"XN=7X%-(OK
  967. M$[%BJN"LH*(3A%YH:<0F+5Q;L(S'XF'OC4PTQINS!_28`,UC;$]%B)78AE`P
  968. M+."#*%2TM-KR1(@=$2\E340(I;UK>?['=_=6?8ZQW/I/P&^N_X2Y_H]`=?]W
  969. M32[C_#>>4QD:O7_4/()DN'BP8B"095K#=G%ZG)[L+!)Z:QTNWE3KT;>SYYTK
  970. M%O5;<\GM?[7UOHMK.?G?@"'_X>^(!-CZ3TBKMO^UN);2_YYG-N6XFFP7]>]8
  971. M:[B5/]2K+NE]9^K"=1D-'@2SZ#&G#7<T<G-@K\H4G_-0.0\3`^"?>;&?C)HC
  972. M)#4,:EXOM*%=-T-O.RI&,+1%[#EX<+AMS_X!#^EC$&8H)_6TGD-="\PV42:;
  973. M9.PLHS*MQQ_Q>(83(L^T+V^A3RRG=WL\7%DF+OP(>N&9B@S:*CRHYC+%`FH+
  974. MX&`)!I9D5CVX74R/D+>6<?#=5B%*S?!,`B(3"P/DB))I*)1III.=40Q:<`J(
  975. MD<SS<WMQE>E<8)*=,@IF<JXX9BC.!]J@"@5.#0_)@LD!^&8N%[A+?I1%2Z)_
  976. MYMJA'""F,E<5"XC,EE`0#Q]EF(!V)2&H*P++?AHWCA&XNO]XXRZ9__=#\\'*
  977. MN=IQ+#?^(Y[/]?_X(\3__>%@E?^OQ76W.G!P.-I-AWPGB7\R1@]<3U0'&*4-
  978. M'HK"O*8]KA_54YEL^W%X:1]+IML]^WI[P6.;%P!\D^/CGGTTK^+?.W9X#O09
  979. MGZFXQW-PS^\,@0.QHPS7.9<19T\RYB9$!ME-6\;S0/30`'0/`Q#&8.>>;5[A
  980. M[.L&W(C3YZG?YCW0YU-;,^JV^X2CVAH?4%N'"V@!B20=.OVJIWX\:^"":1<S
  981. M=M#N\;2-C[=ENE5$!)F`L`?5UOUM:NNXP'FORH#RW0Z8(0,&00PTO;T5T0@L
  982. M,H@%RQ!@,2'&)2\R;8$QY*:-C$HDN49>R=L_ZWIND`;XZ]#_WH'MOZK__<9?
  983. MUO*_,1K@E^'_@4C$;\[_.[#\@X%@N,K_U^*JJF^OJF^OJF^OJF^OJF__[53?
  984. M[M;_K_8.P'+K?_Z@:?\E'.Y@_7]U_K<F5U6%=U6%=U6%]V_O9>7_-T8#^#7I
  985. M_XYTT/G_<%7^?TVNJO[OJO[OJO[OJO[OJO[OJO[OJO[OJO[OJO[OJO[OJO[O
  986. MJO[OJO[OJO[OJO[OJO[OJO[OJO[OJO[OW]S+NOY[8S2`7XO^[P#3_Q",5.7_
  987. MU^2JZO^NZO^NZO_^K=?_S?G_C=$`OIS^WW#`X/^A$.W_!?T=U?V_-;E<=/M*
  988. MG#K8V;&L3F"'WF!H/3:MP;'\$1L(X_=\9:N"+F'NRU?O43,C8!:2%>Z:P['A
  989. M"L7A&*O:7#!5">>SYKND87BJ13W2(U1-3F$T3CV8_'07DR@CP0I#;J3%$&]!
  990. MV353`@2_1,>QM5_2ED[GY>)M'TEO%<HS]XLS5>R\'%=WV1]+QR;IW)0Z5!P3
  991. M2CLE]9LNP6-JGDY;X9I-#C(,7;H(4IC.HB.%8BH[BVEVU(H'X0>\D`!Y3WL[
  992. M*H_$=[=H)-6@2&4C"GCGX,WJ0[L/#>P?V->->C9Q)S262F5PDU.-I4^(N,;T
  993. MB4Q.9V?45-5$XJG'M2-BV2P0VTV>C!?84;WI6!8/J@EMJ#3HP"3N-N)0T_HQ
  994. M/*0X?L38=S:TN(M"X2G"40M!LA*I3\HJ:E$?Z2@!DL)BK]9"79)==:R>SPK5
  995. ML9+NW"33M`MO/DMM`&@UF>^&SJ/I.$0*XQ.C4+C>?99^JL$B^:S:X$XPE6TV
  996. MEQG7\WD*-$QG^:`A8%:26?,$#R&`9P"/OB1HES99R'.Z@'LV!14D3CB8UED5
  997. M>BE\#6C^2&_"B^M\N%99CTJ+$-GH.*7/2_)?A+6%::#%`(8RV&%J,3D\,PE%
  998. MG(@=34*"DK0=.\VT'5.]@\X1QERL#+B```6G?5U,N3=?1&70>?5H,JYG1*6)
  999. M01)\;8Q:18@D7<#CGV;B,":L($@,7)`\01O:+%;UF([:3*`^4GBQ(AG/,'HQ
  1000. M+6;IS#&HC0_Q,Z,I0)D3XRQ<V*7:S;4VT^%)J'U0'["MC4*\WD+K+K;HCF,#
  1001. M\ZZA5FH83T6P*I@86-9RL>DET.SQFW<9C3'\NA;EX2)091WB`L*I2X6GJ757
  1002. M%I`_8M?R'3%3=-+8[*5F&6?R&U1QJ63Y6C2]/U;4BSH3+*`CHY#,P@G<._<S
  1003. M'CX*47IAR.TW&LD@MB,CL^Q`\MB)@BZ$-D0#F42R8E2HU#<Y08O8K,6(VFGJ
  1004. M\LT6@=<P=>[3$/NQM!K'X>`D59T"28R,Z<"/H,UCBZ%^@DLW&^UZ!./MA2K1
  1005. MK?*&36"/8!6`IG+8R("-E>Y'&QNY8K:@]NGY\5PR"T6E#L>$U`8U;=X34?"D
  1006. M`5](3D/EY.PW&2^8W'V(])1Q"0C.2SSU^6.HO$QNIQ(;9^(HDQGBMCF4-,`8
  1007. M\T8'@0J.>5,M9`@!T/@HWV$@VD)2L<GDBNDTJ><V*+,OPYH@)"==Q$:5R61Y
  1008. M!SB6BB6Z[<6:,<Y3HTYQ'HN16",B(.%178KF(^D'&,1P`G49P"2-\W3`?@"B
  1009. M1"&:!&(=*Z8Y<:!J$C.*ZZG8"8=F_8!0%LZUZ]=/\3)G^J-1.@?%8CQ,V!^S
  1010. MPDR#O//&^94NV_C_AE@`64;^+Q(.A_CX/Q*,:&3_(U(]_[4VU_7:_[`;`$%[
  1011. M"GG4W]E3R32(55QYL'_W,#.&`#ZRJ8]K,B$B6PRA7G4?C-ECLMDBP]8#[PZQ
  1012. ME^7V.4S["IP?_C,]ES'[T,0)&)[$4L:XF/AQJQI%S?`HM45]2#Z;2<<-?JBQ
  1013. MGA>Z(5MH&$_`X`.Z(,HVGBS9J08PFC3CHV0,XVYH&\CO-;)_(<;+<;[^P&`"
  1014. MD(((^1?3!H0+VPIU,I9%NN4I4F'M0QC"&.!:.*9CN2,D8\@[3S/>@T,L4F,R
  1015. M%*/=6K//%<8Q`.)(7B^,(IWW)`M>/XUV91=-S`KZ,3;3&H`QILOS@2V5#W5-
  1016. M24/EA$6BU!POD60B2>#M&1D"_GTT.:X;4P)!$#H0F&2;&@83MR0M:4D:H[)0
  1017. M/T+QRCT/3QT9&4GLL&=2"S@SK@5=W$(N;F$7MPX7MXB+6Z>+6Y?3+>!2,`%G
  1018. MT5A&CWFF1H0RWDPC!J-J<W,PHN+(MB),A2E0C#2;TQ\KXBIQQMJV;"C0HHQD
  1019. M3(=9R%&]3!#WHSHAXJ`FF(_&ZC!`PUDF5B'RMG(`NR42)B/+QBPQ,9T4B8%!
  1020. M#M8J%#-%7F)+:QN%WG,"T$%=9)*S*.S+E/J.G6!I/H::9J3!./>&<1U0'5-%
  1021. M6%"!#9N^6DL%YY`R$_4)JS.MW')+.WO:2W/%`?&H[%L*'>`VT!A+]EB7&-@Y
  1022. MU8^Y\`T[4\6I)K4E8YIKG=Q:TA=T-J^@LW4%G8TKZ&Q;02?Q@LZ6%70VK*"S
  1023. M786<S2KDI&[(F?J0,_4A9^I#SM2'G*D/1=@Z,^LBFSW3A0P[+(U"V/ITUFJ/
  1024. MAGIF7`-C$#E=K'GM3:;C%;M`J;7&J%K';3Y\\<18`6$1MTI6=T0=XNLLN$)"
  1025. MG169'3&L!:+1+&&B"M?8R;X-AL942HMJTBH03KEH'F=KKL94#-/2@GL`DED?
  1026. ME65<(IMMO0>QV6S[I,G#+E('J9U$1SZ2P7`5*&YUF>JQK5RE#0-C-NJWT-H)
  1027. M%,LT7P/CKM@-LMRP=1P[ZQ/K*P;CM!<J.RO`DR'F>J0<*X=COKP>RXVS]KF=
  1028. M)6X[HL+.,3F9*>;5"3*+)K`2&GLOS/M@K]81[`Q!?6!X?-(0!2'9W$J=`D@&
  1029. M`._"'\\$'YF4NVVH.5,^[@EU:<=.I"6^<WVB]>S,]4EVGG@*1UP\6A9FB1@)
  1030. MC7600+&Q4]=4;9M%+>;GO*%L6*:-8]1F/<4ZU:U&#QTZ>*C%-.V$O96>IEDV
  1031. M+XF4/D%=@[%2VA1GXQ&JOX)F1MW%4:L1+9M!)V%>G,GQU=(Q?3))\_!EJX"Q
  1032. M+H=G\,%/7@`5MJKZC-40W"NE96GG4JH>)PUDAN&G";;&J;*[F9>DE!W"GC/-
  1033. M1_'.&,9=HB+S5(M*Q6&/`""5CU?P#`-K"VN.C"%""55HW"MOV*O>E+%YN37G
  1034. M:BO\#6B%-[:I<$MK#CYOMIOK:RC83JQ3=]9>L&*QYB*-)NRM1"K3Y9H)K6;"
  1035. M_%D,.+#>FBU%6-7,9:9MN1*##V.C(T9FW;)BO3.6QF7C\80^?D2,0RSZT!&6
  1036. M*1-)JDU\'(M5T%)!*+=02W(Y'(X:)^7BNE$;TL!&0T?4L4PQ'8_EDM(0J&`9
  1037. M:E`UY270JC%U%*AEW!B+77/$N&[*RYRO:MKPBQ$<3LV+:<Y>'!2U6+,4A6'9
  1038. M\J*PK,:PLC8KO01OO!H#.AN?$6W9X"YVYF%@V*$F?=3<(>I\)0!#YP?Q#3?B
  1039. M#1MD(S16DZ*\K8.[()Z%>IQ;F(WZI#0D%-1@#I7K?^6^0QBUQ>>4,=_.NO;&
  1040. MHEUC/*QO0*@T*K&;,"W0TCH6)SA?[D'>'D3]B=?+VMF0&YGLX1O#TCE2*1Z7
  1041. MZ<(.U<LWE;!G>9Q1T8B6,?HXMWOHPN-'@:Y86@:O3V?81CCC[.8^O'7P8R\%
  1042. M)+RT>W!_+%6P["(GP"')3('S2B.X*_8(<8LI1>'C->=!4BZA"%NI"'T^ZQ1.
  1043. M;HC+5;V5CE"L$[YKF*VM>'JV7/&3B1]'13.+T,PT+T%4C00I*QAMFXK+7"4R
  1044. MVG<LA9L^)U2_O87[A0(F:\7C6JCDJ:#=RJO'PK"LU`27@>*T"^'W)`L.TH\)
  1045. M4\MCZN-`1@UU<'@9!NB-.DD^8`_Q55JLY3Z[=JG!P]SGGIWJ&)79!(;SF=P?
  1046. MV1=7]61A7Y9E=(]E(&7Q,O,A=F])BH8G6+A53#??@&8+!Q,3R'B):=&&+.[>
  1047. MH8P!+I@;J!PY1-1C0KX0Q[\#?=A.1]*X>+1G_["GO=VL'Q!!-T\SS?D?WSE&
  1048. M3X:V*7[8Z(894(LZ)EXIMA9G_-CL*@LW.BAI[:3>:;2$>O+$BHE)6;&0$ZO9
  1049. M,O1\PD;0:Z2G1-BWR?COKZ\=7EIL-02S'":F"S3$93R:#R/LWP&[0]#N$#*$
  1050. MX7""0LK<^(ADIT,<*LC%H:RS&[2VQ8<ITJB88T%PD187C.%*&,,5,0:8T`.M
  1051. M>#HC08OCLE?`@AVS&"1A+"M.3(.')FAFQ3,IB!Z/!,)8/P)A0`=T%UDQITL<
  1052. MW)Z?/MV<`0HJD?`++V^<"3;%*2T%FD98<K(*Y`I*Q`FM3IG2HK5G:3H$6M1P
  1053. M14*$5T*()=$';RSZT%LOQI/O2*$0I_S'FMO_T0(=02'_'=:"3/[#7[7_NB:7
  1054. M4TK;UB?;34*SOF(U]TDJX+R&Y=D>6YJ7';3;`RPWH+/#+S\$%)E2W^KR@8GH
  1055. M6J:#=BD<@ZNM)"B!B%&&K,FP6=I5Y(M<DD2.9?L7NV2FA<`L5I8CRWG^!_JC
  1056. M_:-,=SU3*HF79O4>&8H>,CT#[T@V^FM[6?G_C;$`?FWVO_'\3P@J097_K\55
  1057. MM?]=M?]=M?]=M?]=M?^-5]7^MUJU_RU?5?O?:M7^-[^J]K_=X*OVOW\3['_S
  1058. M^=^-L0!^#?:_PP&F_R$0#E7G?VMQ5>U__W9?-OL/Z<+:G__T!SI"AOZ70"3(
  1059. MSG]V5-O_6ES7J/\E:=?MXG9(5&PDT%(Y5:Q1.JC.Q2"X7A<$:Q8J'(;A`X]^
  1060. M\GV!_7W#DF+NZ,/>M$^UJH/1C]]]=UHL-0,`C`T13F./`'L$V2/$'F'VZ&"/
  1061. M"'MTLD<7PZ()-!R/QA%I')/&46D<E\:1:1P;G<3S2,?Q7<6R/)YZR"!)+/C%
  1062. M`7/G&4[YP&(L'A\%TG@A&(D$CXZB..AH,O<8;4I:O/W'@WZ$()+;048(QG\\
  1063. M$$"0_(G\>"R5"M`..K9%"R9,70M26HR[[;X:^6H5?`/D&ZC@&R3?8`7?$/F&
  1064. M*OB&R3=<P;>#?#LJ^$;(-U+!MY-\.ROX=I%O5P7?W8P:E8BUAWE7HE8O\ZY$
  1065. MKC[F78E>4>9=B6![F7>8G9^RUQ8-JP+4$\VU+@6X;\#5-\A]@ZZ^(>X;<O4-
  1066. M<]^PJV\']^UP]8UPWXBK;R?W[73U[>*^7:Z^,4$-OZOWF/!VI]:X\'8G5UQX
  1067. MN]-+%][N!)L0WF$F\8+L.85LQI#=%I![]S+!5-PPA`!YDE/%_</\$?QF)[2A
  1068. M3J11@A(=?*9XD1&MQ(P=6X4H!\;V`7%-G=@<@#T2:`:?'9I5K%=E(#2KA(L)
  1069. MEC[.F5]GE)B?$;AB4`3&X!C4.Q0],/I`[\&^*,K0T3%I>^I'UB[YQD>'?]7R
  1070. M(MF^]<2+T]G1:7U:Y&C<W$#7DUGC'69^DMC<6'&"B[BZ:#P3<KK8W0`*+CL.
  1071. M;^H.0H,.._#PO.VD0M-Q]5K^4?H%1>2XD4XF*MRBTB>>0'8Z!9Q.0</)0(5J
  1072. MM9R`8:=3A],IXHJNTPG8Y9)@OXN;YHI0<\F)%G1Q<\F(9N3$Q\YUV.H#E<9H
  1073. M3I_,>_&F-N=<ZX-<3:13;#0M4^/@B1('*(PQD1>]ORAG>(_N?A@J!\J!JM$]
  1074. MYFNO^=K'7JF0Y=607.LN/7:\A9YC_#G.G_'CHH>2H]HS:"`=DE[WFU'MKQS5
  1075. M6):ASHMGDD>5M$<5W7M@][XA@53M-5ZC^P?=\>M<7`5)":2E[C..QR-UO$W@
  1076. M;3+/FYFI$:X)B=O4%#N^U3!S$L^3A+<$HSM@=`?,A`-FP@$SZ8"9S%NUS?69
  1077. M68Z:KQ(A]@Z9N:^OM]8,"Z8'AH>&U&M$)XWO6W<5\ODVQ.]PA`C=8"?=8"E1
  1078. MIGPQ7VA#+CE]@C6(E;8'M%AL9&X2=12F3=U:6^7#&!YC,&W1/"M/;G!/41*M
  1079. M'J8)S_Y#'U9QA*W'V9D$#&3JX&IOQR-1E@G23C7@0^6+YO$2=TEJWML9`_AK
  1080. MRS@:MZIO;S>L@AK*++&X5Z+BDE01;^7G+`P'(2B;:P,&<#VH1"=.J[]1T=^Q
  1081. M_?(6',]8\XB'Y5J,7FT%6>9.H^,D!FW)_J%HGZ6N?R3=W-RL1H^/ZUDZ.NT_
  1082. MWO1PL^IMROO8.5"6)E6G,RB/L,_#)%EK<N=[<BTL5<0_A#A7O=&?<[;2HG;@
  1083. M>`^+7,]U<UUB[,M<2":2V"DBLT)&&]EII6T`85UH8>&=;N0PJ,&3XZ`%8KAN
  1084. M<E2@![2'ZFKA*E[.];\UE_\-A+2PL?X71%UP6B`2J.I_7I.KO5G=/S#<=K]5
  1085. MRU9"C\6A.TJF898PS71'"`4]1@?)3)2BE$LN4RR@>4P2['31%6<8?#1F.EZM
  1086. MN=-G[BLPRZKJQPS>%$_B(`1O.+RCL1V-)6$`"3<<34(/@V;FD+'T6,6DFCD?
  1087. M,N6DMO:AJB:]=>Q$ZT?U7(8/\K;2.7V3IPGG@?[]XG4/;DW2"0#A`K0Z:/@>
  1088. M'!GH&S)\TD=C,!E7#V91*:P9!ZDE&X#!Q>ZCL60*4V;X98KPU4J<7;CU9KCN
  1089. M(Z!V7I\D[<]H?C573-LCPL&8)>P0A\?(!G-Z7C>3/40:?QU9W:>G]5PL!="9
  1090. M@CXN^Z"4L;I7QMZ,&'-']7BS<-F;RI#VY%:B$.N.A=_N%$RW*36]>")?./<S
  1091. M0ZK<T7-2WD;U>&P:O\42IUCEM2T`&VL7KMZV`9O=VQPXN7KC(DM%G\IA@A5]
  1092. M0A5]PA5].BKZ1"KZ=%;TZ:J<4W]EK\I4T)8@764Z:)4)H1F4X$+EU[$.U6,-
  1093. M>DV+0#V_1EI;5^^R[?_CULT:VW_0`N&0<?XG$(Q$</]?TX+5_G\MKJ6L-#@M
  1094. M.U2V!^%A?>]DO-#C8987F"IFMK''7"Q[?=;&*'D-%*<-E;`P4PL:UGG$Y`<Y
  1095. M1[I`9X)1<QSB?DS%D`>2^<(C_;'CT)V-'S8W&NWJ9>G3,ZD7(+&$R%18:.+>
  1096. ML5/M-'4[&.[20K-I\D`$%XJX)YDB;OYU1)A%J+>%Y1X8+_;ES4<*^;Q#<4!2
  1097. M7JOE6X,\B\;VH)'WY.&V@E`T@-AP_9E05S9D8)82`K-R`FB6%-.S=1?-U]`,
  1098. M`#NM`[Y2F8&[7-SUUN(42<+J,Z07^#C%B^8<=K!!(222ED]-)320@!95\X?(
  1099. M&0/F!@]%AZ(#P^KC*GWV#1[PBW<1G&F@X&J`H>JH7DE/A%`@!)-)TI*&I^*1
  1100. M1DSOOK&@-HY'29O\6[NW[D1S#E@#?6R[!?!"ZHM9H4"$*-MNI5(!NI.=1IYZ
  1101. M6#&T[LKG_<*Y;_?P;L,=1K8:GCD5'P'C(Y_7I/<`7V24H\+\X)%V+S,:@,7&
  1102. M:[C`/IX7D>*@6TJ,@3F>EV(W7B?,U\F\:[I3\8*)`X?1A5PL:[@D,].Q+%E)
  1103. MX@KR66KH`#-KT6SKJI#S"DI1P1G:_LUL<K7_YKK,;N/4+55PZ2PR?F.-IC-J
  1104. M_,/6XB;%EOPDI5^L5U5J'*[18E`I5O@T(F7O2U9T+`A655OX?M+>%=5P(QQ^
  1105. M388>X.Z3P<">_<.^I1L7EMSUQ&F$N\XX`VL<Z<@U$C>X"L0=N4;B!E><3]Y&
  1106. M)N7M7?AH(4L=[9URY:85-.I,N,TCWAF)RHNNDK69@F6A$SB64#VGXDS;;WX!
  1107. MU^(??#&_0`RN!>V`L%7[K-_X`&`+7IB@2WC'Y(]Q^2-NIHS'@)AQ`TF\CTGO
  1108. MX]([;299K.IHEIP$Y)QH\D?`-4X(+V<M(&5-D]ZM"B2`G4F1)K/2!_68EA2Y
  1109. M14O]C8@55S_%.]][,A-DC5?"'+?$8KY/2.^3>=?(S0CB<ES&ZX3Y.FG=#((N
  1110. M0$J!Z`-,)^H$S,]L/)ES2T$*J[1(@L!BN!@]28NP/<-V"5@]]\@FB<0VM[G8
  1111. MG<_*=L"DX4UEHTZL(XT!++?$PY'[W,9E!CQ3'&'VPZR/<PS;)!,[]?4QV8A.
  1112. MLIET@9$)'>P'Q3A"'J-B$J1V)VOL0\7=HBLK^+C1*54*X!Q^F.V,Q-#ZHKO[
  1113. M]D2C>R6?L8H^XQ5]XA5]V#A':ESF%QOIF,V+#QK,YF&5HD#"05UZQ'_8E,E`
  1114. MJ0P?UU(N19K,RE1*9B4O,9KU'P\%_`%+0N4P>2F,8S1E-!PY9W)6X-VLZ!.2
  1115. MEV-4938&$T@>5]F;@TDC/@J,8<6IT$\)KFWDJF",K)?KI7!@C7E@@S"AI=><
  1116. M!+$&"$U)[GD,>WMZZI$`JB_#%Q*J82DAT2,8<8^.`A?!P##<[E''4X4\VE";
  1117. MAD%W,X3@RO!$H_)8&Z0Q8TMRS8H\3E0H@4F5F[(T0'936X'&M%K4>[@JBOHE
  1118. MFBT)PXCZ9]C3L#9EP\(&4_`HS3^2J,G+9AV!YAY&A::*+@J)%#'OX(I*B3,(
  1119. MG&SZD5<3R<G$M4001J&4G6Q*@[(VS1)NHW!C9N%*QL@,<AK,%9-G?!Q-Y@JR
  1120. M')+Q[M"`Z:`N0#MX(J)#G9^46DZ'I(]K^S4U0AK6!TPK8:P2VE?ZR*B8FRBN
  1121. MF)ARA6"HU8O/K0U=A;:Y]4YV.-$RM,*HN]'(&=J08):T8@7U;M0;W&V:^./C
  1122. M+N=LO>!PI?2"#SU[3$6&/4+M)LH:4"TSQ0UV#ST@]"4:EM7H&%$RKTX44RGK
  1123. M!CLE.ZZG=&A*EI;[UNE3X!H=718E*F9$)(N+1K@+34O"%4,/#??>WZWVDF1%
  1124. MF[H_3<L_W>K=;+0AD=VZ$&'Y!G+L1N-=W:13T;YB`36/9Q7Z%8W4T[HM:@C-
  1125. MBS8_%)[CRAJ-%FT0Q`H+U/'Q>D4;W90F&@98UU<J!Z\\Y;3*SD`?X)&66"3/
  1126. MZ^L/G`7"C,YQ19URD:RX1-P+&3$B`#<9U]YNSGBLP?D:`O5(=A]:X\D6\XD)
  1127. MM4?-9K(HA`7#GQ[4*)%2M_F/[\&YF^&*D.*#X">@=^K>&CLNMR,NIB-ZH[%4
  1128. MAHS9<6MP&30']\Y4^V5<+NO_JRX`L,S^?S`0"9GG_T(ALO\<J=I_6Y/+//\'
  1129. M/8CU^!]W6')+GZ\&\Y+TF^Z'1@;0_"_?XI'<86[P3\66;\!T'SH0C0Z.#AX\
  1130. M-(PUPNZ.<G1PA4QWG&,86\=A,T&":>.HK;+D@<4=Q^"J-^#J'E"]0;O'"$,4
  1131. M<K@S1&$'(EPH]G:X23R,\H&5.6BFD1HF_G`/G@^W#>=:6U'Y/`[J!#B.EVS@
  1132. MW'B6'12'BQ*H??3(X&45U:V[5!^$/\GGPCV.U$.^`"_)6-@.?P+'/H*'%8II
  1133. MM![&3OU;>W2<P_:XA(2IJAE0<P^HN0?4S(`!]X`!]X`!,V#0)2"MT-#2C,Y'
  1134. MGD[<L>,MN#:%\BFX7H42*RBZ@C(L>CSI%BTNLHA80VX`XQ)`V#WA)D"'&T!<
  1135. M`HBX`4Q(`)UN`),20)<;`"W?&,7E6J+2JHXQ?X5ND;9''.V!!J-,:@=;#6U#
  1136. MX0<M;U!PFL9PS4*L8M.44OK.B6];(VO&N;(%TBQ.8\THI>MH.7HTD[:X)W./
  1137. M\:/S!792T2WAC]G,SCLG(2C.2Y`]'HLQ2USEE17MR1N$W)WC76[%BR-P3LQE
  1138. MCV7G2C*P;9K`O59M<MAC3/%=9OA"%D0>9U5/C:_F99/_Q`W^-9;_4$.ACH"A
  1139. M_R\2(/G/CD!5_^N:7-=Z_IL)>U"CM$TYF2@5+59;3]&(BS=[MIPO^$%R.EFH
  1140. M#-ZIDF)!SDPZU<E<+"U$UIN]AG273Z5H?;A>1!B-E6$Z8>>E)5/3B9^S4X4"
  1141. M)@LF>3&=8]VAAE0?_.TTTBFAQ)-\[$S@KEUT8@XBE.(3AC0>-\.R+&$J.EGR
  1142. M,%>&TAV6.!E>RA*>&R1T`!4RYZ&B*'"NNT\P3U$67!,'+L?2*++%0MFEJ2G"
  1143. ML%3U7!NU<##I#V,.>8YY%BGUJ'8,DP\C432T>H3D,K*Q8DK-'XNE\Z;`<5YO
  1144. M:VLC59-&3E%PP%QCI@0:J@?YRC(\CV92L4(RI<.'=RL$(:$.M7LK2G48P6PT
  1145. MI-.T%>NI$8GH>6EYFUR2;/F6E91$K"1;^#867=C@9ZF$0@I4;Y/?1VG-;L6M
  1146. M#T'@I&]'P)'BR1N3XN43.KFBA(JJ@FG-2VEM=DT?`&0+N4?$`*]"U/DEHF88
  1147. M>/Q475D.=PK<D&MJJ,Q76.@Q:S0'TPY3\L4\#B>FN_U0?P-^B]L><M.L<!JX
  1148. M[;;!D9O&"TXZF"T?)\L4"V.C66@U&DQE6(P\$X8/JG9@\=I]_*&*/EHE'SQU
  1149. M*GS<6+`JJ=MT)DYS)*Z3HW/X^`,5?;1*/D;BM$J)4XV6P%1C7P]!_9VK25"_
  1150. MOR)!KXF2$?]J4M(O8;/2C*L#H,V9W&.";&@C+_<8Z<$T>B%$Y@7`,2_/'W#S
  1151. M)Y@-&PSILU&$EL4KA-6DL!A1*UJ^DM(N$OC6DO>X>MVI$T'=$_=VC]A6]W(9
  1152. M_Z_U^F^@PUS_#?D#03;^K^K_7I/+6/_=#T4_>K^Y_,N_<8#&AV]C2;AEZ`!1
  1153. M7M;A;]DTPO5#*%-4"LN/(Z%1;G8:B49QEE`D^8>5`GB4PT=C/@&G3X#YA)P^
  1154. M0>;3X:>$XQ"R+U:(M?=FXGH[+BCQ1#G33VNW%%8+.-(?!QQH.SP6;S^62Q9T
  1155. MU]"Y#(5VYMX,K6;2J1..P+2<S*+>[0B,A\EXU/IQ?=PU\'$6<^<2@8V8K:&1
  1156. M))S^78[0>!H>@(2<,Q*49BI+U0.49.08[?6`P@):@/"22DYMC\\1G,0?>>%:
  1157. M@W.=H(B!J7+F2#K&<!AIQ[/[P0,\&?8"01_`@;;5+).*MV,FV_.69V\]RTR+
  1158. M>E8\M^E9\9RB9[E!?8_[*%?2Z$;,97#WOOT#^T8/#GA]JK$YJS;1R4Z2Q1_/
  1159. MP<"%?6=RM$4K]B9:^"8M@9&P*`*+?5V=;=*Z1K9W[PIB$SO"$29<MG=%T;F/
  1160. M1"O2HM(8K*?"X,=8]C19\VKP?VO_CZQB6F\K'%^R*[S6:[G^/Q@0Y[_]$;^?
  1161. M]G\CH4BU_U^+:SB!/92QP6@Y!9[/%'/CNCH!\^Z\<?Z;U90VCV=_&EIEG!D@
  1162. M'\],9P%*#G4B4U2/)5,I-:WK<94T.!Q%ZQUJ],!>XBIQ$2KG829<^6=>6#0_
  1163. M#GT/)(4V6/`$.K!LM`*2G,Y"5X:KE=!(CC"#(`C.=J+;]NP?\&"*6>1CNCI)
  1164. MAYP+*"@T+$QH(OQ8,ATC0[]J^U@QF8JWHY[S&,.)T<92F,OAA"``'A>R$BN6
  1165. MT[L]GGX(0!'*E^%H)1LGCH<=FQNW=A/@F,^@'%_&,%22YY")BI#\I#[&Y7$"
  1166. MPH492"73Q>,J>5.BO%"9)XHI2EP6]^B2&1]JZ[2G2+6?]L>8C*21LHB5!^!)
  1167. MS7NFBM/9MJ&*X=!;B@6-4#G2A8X`PT#0T#MN/_IHC\P!3!M7T[%T;%*G`8"$
  1168. MFJ1=;*@E@K+"JQC\2"$'=<D6'2]G]$*I)8E:M+5BBPR'5_FL/IZ<2(Z;L*HW
  1169. ME8G%,3@=^,`4Y%6],(XZPMD,;9DT!ZTM)^^9AC;MB!P=17H-%0Y>E>L9]ZD^
  1170. MM#3JK!+<0+9$$A&8X!TUP@DOUUG#[I`<CCF9>/G6A!4O)#,=C^7BQ`KR*G7V
  1171. M29;=MYNI_AI=UOY?L*W5C6,Y_>\=0=/^8Z##C_T_#`"J_?]:7'>K`P>'H]UH
  1172. M8DN=I+Z/]5C0T8G*X/'T"LUYV[R]>WUJZWZU#:9.T$%VB^$`=*:BTT2]S_32
  1173. M[:D?S\H`;6VLI_5X/`?W_`[B([Z$PP?LY#(JYZ@9TQI9!MD'W*G/R&`O`7?B
  1174. MVQF:JK1E/!XSAFY((&+V>>JW>0_T04KC`VKK<$$_7E#9U`$FI:T9.4U2@(%^
  1175. M")#NE7UWB0\8O2/(T+!/\O:PKBS3S9(WA!"]O8!D7#AXQE-Z#"6,<]-JZX3:
  1176. M#*EN?D+-Y-N:(<\Y'1SX`R;2&`?<,=IF&L6L2?E;VS]+]FK'L9S]OXZ`L?^O
  1177. M13HTDO_LJ.[_K\EU-S/_QPK>9OHO$%3]P>Y@9W<X8#/]Y_&T8:/RM$VF,F,I
  1178. M29^.W^FD.9T"3J>@TRGD=`H[G3J<3A&G4Z?3J<OIM-MT$LJ'3!=#HY#I=&0L
  1179. M;G70C_OE#TW^",@?0?DC)'^$Y8\.^2,B?W3*'UV62*U)L*1!LR1"LZ1"LR1#
  1180. MLZ1#LR1$LZ1$DY*":GPL7P'+5]#R%;)\A2U?'9:OB.7+&E^7-7:_]=.:&LV:
  1181. M',V:'LV:(`L%A+(ICT?Z`+Z>+R3IZ)2GWF/6&7"?SAP=4[>A\O2F6,I3CWM,
  1182. M^-:";I[Z)(;PW"TUFV[/W?6X(!6#)QV),QL4>&2RZ.X(I54,I=E#26T/4L?"
  1183. M6(,$/"R$,YI@Q6B"2R0N5#%4:(E0X8JAPDN$ZJ@8JL,6JEX.%JD8++)4L,Z*
  1184. MP3J72&-7Q5!=2X3:73'4;GLHK($&CS(+>>F:2"A-SF:I`L3.3$3XP%513_T4
  1185. M3-!':37>3T":`TAS`@4<0`$G4-`!%'0"A1Q`(2=0V`$4=@)U.(`ZG$`1!U#$
  1186. M"=0I@.H-J$X92B.H+@>J+A=J.FFN^9VX-!>J:RY@3KIK`1<P)^6UH`N8D_9:
  1187. MR`7,27W-A?R:D_Z:2P%HSA+07(I`ZW2"=5K!/(RQ=YN%)"A&M9_U6))OP.$;
  1188. ME'R##M^0Y!MR^(8EW[##MT/R[7#X1B3?B,.WL]M9[4S?+LFW2_*MY^3PR_3P
  1189. MNP!8"*:Y`,@TTP(N`#+9M*`+@$PY+>0"(!-/LU"/0QB%+Q@EN(W&D_ELK#">
  1190. M\-37+\<)!>^+Q>-0>"U->C[+&6$]!.8UJ)MS3/JRP4JLD[<%"W34%=P9VQHO
  1191. M7EGG?VUM-$%?Y3A@_A>I//\+A+2@(?\1"'?0_H_6497_6)/KR>B!O>O6K3.^
  1192. MURL;%/R:@?\0/._8SMQ#B@KN7J5.V23\"09_KV]3%'5``1^X-E];_".EOY]Z
  1193. M;WDOH"Q_&&Z)?WVG,E.>7`^?8[5P:]T(MRVW@L>?HL<`>$QMF%I7_I<05^GY
  1194. M^:>N-L+S*X<2Y]'7#[Z)QS>O5Q(SD(_R-V]7E-FO;)M2!LN??J^B-'ZY%IT'
  1195. M$_\986LPBB<;X/;^+1#J_T.WU]=A@-L2_PT_?@`?VLNS7ZDIO;'GU)N++=JZ
  1196. MHS]?^+NSD-YS-4W*S/S9ST+J2[?7P7OM9R$57<\?\\X?5<ZAPYG-I\\^N@A7
  1197. M+7X1/(.A[Z/?Y1B41CN&T%D*_Z*BLJ!SY'ONRC9EYO3Z"MC^K]+EPR^4WIC_
  1198. MR^V<GG/1NF<Q!+IC>H<HR+,(K'UU6?R[3_WB?P'D3_S?%VNO;J-B5B[6*N`!
  1199. M9%+F[D14IUZ@E-])&`Y?M<<_-'>X;J9':7SZ+'R?N77F34^QOG>A8_XOT)_B
  1200. M/[VYMV+\BQ3M[$Z\#Q:_8*;B'"9B]LJ68D/YV*\6%Q=N.CM?N$>Y[UET)K_Y
  1201. MFID+K]9LH`#KSF^H-7)]*0U%,?_G]R`6GMZSXD)ZC=3-1QL&#R6P8B>R$*#\
  1202. M'D6\M4!0.0#`SUZ^XZ$',9-SQ8:YD[?-GMP,>2U!?7KFNXU/G\+G&XV?/`'/
  1203. MN>CF,\KI:/GI\XU/3\#WO4V-SQR`YV)T\T#CT\,(,;+YS+MGGO]<XY>_5NHO
  1204. MS_Y";?SX!Q!@V_QG-T"&('_96F7F\RO\/5JCS+Q4LW)X^\_/PRJ2VPRXL9*;
  1205. M_RN\SUZLF=MWM12]#)E\^G?7818NGWGWZ9'RTR\W/GT4OD_?NAB]W#NP\+<L
  1206. M%.05@I2^TWMFW]73ZR\-`01'Q^K+[*\V-7[R,D=\\"I0X6+T,C(2:$MST?+L
  1207. MJXUGSC9@3>F_?/JV]UV8+M<L]E\^\?>S+]3-OGCE4BVB8P4K\/'TE9\Y?_+6
  1208. MG[\"+R]N:.T%<G\'/!?>?W9NI%P:*2_<<I8'DZ.MQ_H1+?\'[(*UEW_^D]+(
  1209. MZQ#^3/3U!C_D\G1?\\_F^LL`^CNED<O/?+50\\S+)U^"S,Z>O%S_Y!.4WLMG
  1210. M^KP_.[VA=Z"0YAY/_&AAW$*_7ZU[\B;MC84!*?Z'KD*23GW_=?B\\&;-F3.8
  1211. MW],W]<K9/WUK[^R+OUK8<G:N?_.9>O!<N)EA/1,M8WQ`9BB09\[\C\7%%S<H
  1212. M\_HKC_SS4:/]8U7M;X"Z-A^];?#0AX?*$0#C#0']+];.M$&IO_2AF2\M`NF?
  1213. M>[(-681R_P,G?C&EE#W`AX'C;H#'EY#GS7ZE#O(Z5/YI#;[7])[ZY2*X/O&/
  1214. M4]GRWX+3U&/E5_"1*W\3'_GRU_!1*+^`CV+Y+_%QM/SO\7&L_*>$0YTZ7OXC
  1215. M=#A1_D-XG,/47"@W#)9_3_JZ;[`\(WW.GE\_6,[4F`V:TQ/[$[7\(&*[JWP0
  1216. M'UO+]^/C[O)N?&PK=^.CJ1S$QSWE%GQL+S?QA'C+'T`'7_DV?#27;\;'CO)&
  1217. M?+24%S?`H[5\!1]MY9_@H[W\(WA@"EAY$+VC=?/(^V8N_*AA[F9,\-QG/@7]
  1218. MIW+J!\KKBXM#@XF-_P18"Q!NL?2*,_VSEVN0OXS4:8L+,>V[7=_*WPGL-=3S
  1219. M8&GD:OG`!J+ZW,C59\X7`[U=W\K]?=>WBET$]GXHE_F:GD&$&V9PO0`(,)<N
  1220. M_+!A(83\I/3SA6_(]7'?<\I]BN)[J>MB[O</)31,UZ4W%Q>U\PO;B;]"?2MU
  1221. M'7HH40`?Q/O7X`F5Z<.`]]!#Y2>P_>FO\\J&\,NE_Q/K5Y;^WU]_W>GWL?1O
  1222. MI?1+2;_%DO07%#GI<O\%B?_DX;J?O[`(G5SA@T.)SR+2O_G%XN)SV*4O?-3"
  1223. MOY[Y;K$E\4.`6/!0?(D/?!"@_YT!?6#AYK/R-3?2<&BH_!Z@6^GBA1\W:-^%
  1224. MYM1UN.'H5LP[T*A\A`8A-<^<+_SY@^4_91^]`''L>]KY>?UG+NF=O5R']"XV
  1225. M?`E&9\IS"@QJ?*]WO=`X^SCR,ZI_I?ZK@%][N>NG^5LA:,W[YTY>G;WWXTKQ
  1226. MOCU=/\W]N.NGQ7WD&9OKKROU7Z%R>#\4_4W]5P"RU/#Q4]$K.+)#Z+]?Z,&,
  1227. M\OA++RQ<D,NCUX@_=S9Q$&GQ;ZXL+I;#0$LHDYO.EEZY\&H#L)*9)^?URZ+>
  1228. M2.$9_;%GC=;58ALJO7!AH8%:_=R]?W#JA]B`M*]V_20?P'R\;^YV])F]]RFE
  1229. M>'OB'$:WXPJ5_NV\/5VL>0H?N[M^DGNI=,4DH-3>(*;2\[/?WW2AO*'Q+V9F
  1230. M[E%F&I]]*;=1.X]PS^%@EQ)I@;\P^[U-7T2O;WT?@M6=Q5""WPI_\/@B#%06
  1231. MO_6\:O'77G[NZN('E=(;+]9LOF7^_@VEFY^&/-3BT'GG+Q<_I!S]X7,PGE98
  1232. M,3-ZP)AW0_G<5>`7+SZ8^"%FL^_GBXO@6EN>0]>+#R46T;4-7(&-/5@N`F]Y
  1233. MJ)Q!#O/"4.*]*OB]&_Q>W/>^]TUM>+#\'N@`!A--Z/S+-R@(X?K0509/N+[_
  1234. M!L6PH>R3X_UK#E[[4/F;5Q%)/R+Y"X2M'2I_V71Z5N!]L/RYJT9L\^`J%<+9
  1235. ML[]\X?/J:^HW'BT'8:0?^\:C^%7>Q-ZGE$M`">71J767/D_/]9<^1\\-ESY+
  1236. MSYI+?T#/VDMGZ;GQTFEZ;KHT0\^Z2T_1LWXA_^B49^'XHU,WX5O#0OK1J9L7
  1237. MDH].O6LA_NA4X\+(HU.;%P8?G;IEX8%'I]Z]L'=JW4+GU/J%T-2&!?]4S4++
  1238. M5.V"=VKCPK:I30OJ5-W"'8!P"^"[#=!M!FP-@*P.<-4`*H5R$(-&^XWRZ[74
  1239. M>F/?*'^:OZ&SA1V<9?WOZ38VQM6^FWBJ09D9.H<.@^7_DYA@`^]BC_X@\7O@
  1240. M.>7GOI_"Z<['T66K!)_XM^BB<)=IPK`M\2PZKN..#R/8_XXNZ[G+7G3Y,W39
  1241. MP%U"/."7T+&&.WX0P5Y`EUKN<C.Z?!U=-G*77ZYC`;^%CINXXVLXLOXNNM1Q
  1242. ME[]!EQ^@2SUW>9X'+*.CASO^"8+]`[K<Q%W^+;K\%%T:N$N)!_PY.M[,'0L(
  1243. M=A5=WL5=QM!EW<W@TLA=!GG`V]%1XXX]"/8^=`EP%Q^ZW(DN0>[R7A[P+G0,
  1244. M<<?U"-:$+F'N@@.ZA`]=.KC+?U58P%9TC'#'KR*8ABZ=W.4+Z!)&ER[N\L<\
  1245. M8!<Z=G-'K/2)G>C2PUV>0)?=Z'(O=TGQ@%%TW,D='T*P_>BRB[M$T:4?73[$
  1246. M78(\((YYN),?!L;E.;C!J+#O)GA'?N$<OXCQ9G1SZ?E3WX<IP.+,?_YD:?CK
  1247. M-4V+4(UO5J"7*M5\71I_NL#_XQ+PV#^<W*R],7>X8;[F@]C1_16;+YSI^R>-
  1248. M3=A2!N'M7<;;S<9;@_%VD_'F,=[JC;<ZXVV3\;;1>*LUWFJ,MPW&VWKC;1U_
  1249. MJPFRE\0G[P(../<3Y(M]LR]LGHLVK+L"R7^J;U%FBM;YC#F>XO/-S7.]MPW.
  1250. M]6Z!WV;XW3&8^"M$&P*T<QO`H09^#8-SC]25#E\=2OP#^FVA*+T//C0'X__$
  1251. M![:"4RTX37SBE=(+$Y\X7[HP\8E72R].?*(,]'\-:5XJ7GWPU/?I#<9*I[Y'
  1252. M;_U7/WSJ!_2&B'<AEK]Z'1%OF[O]#P:@T_S"GH<'X?81O-T/MT/#&#J10,A_
  1253. M^3IF41XHFOE+_"N$R+_.)MJV\1+X+]8F<":>VVCIB,WP4^\M;_SQXF+B<XCF
  1254. M<7B;BVX;+.?A!7PN_Z/P&?LQB\`1GA/WI'^NV#E54_XBA)BK^<,[(,[!H<3_
  1255. MAD'_'PCZX-Q(Z-!#N%!03OR*=6WW/81NY21TI@N_,NN_P-<R5PP!OBD+OO^(
  1256. M^#[.\/DYOBT2/O^A\OML^,ZE<.'C?-VS^'09+Y4[<?7L5CY.<=)O2'M9.W]Q
  1257. MY@]X'P.8<$$+FO71']%:VOZ?8:]?NO,L`%R<+:Q7Z"K=B85ZL?;W>;`I)5'"
  1258. M1V+HW"=PR'7>#_,OZ-8:U6^7;O[,`*[E$(*G$H``5VXG+O;6;<;[%GJ'T>/%
  1259. MWMMH2-;;@`\:TY6>RJXG[P-U>/\(!7B8[O?3?9CN@W2?(,@XW1\%!!AKJ?>.
  1260. M*7_Y=VO9]$TY=Y8XU;^#W`TE_A9I_0$@_U!9_ZG!J9SU!XG0]]\6%Y_%C`TF
  1261. MWL!@?_</BXN44>#_$#9Q'AGDO\';(LP+(")&A+K!\A1-';T,XE\X(#8/TORS
  1262. MDO<6P"\C>-,!H0Z6-QD(?NKP]@Z6RQL8`BPGGN8_KF&U0<S_AQ(-=T.NW@6Y
  1263. M:OQ";QWC$[-85(.)+>CSL\M`H%X_>+3`+P0_[V#B0^CSG<M8.UL@V!9HU,1T
  1264. M;B,>D\BB]Y<H8">X;(.?REC2'Z'/.0KHA3#($GJ1.?0B7^@=QMN!P<2W$>IC
  1265. M&'X6:P&Z3N`MCK='!Q.W;@/_1RZ;)<?FE\3_ZZC4/OD3K+K4'Y=>U,[#7$I[
  1266. MN?1&Z9LS7]U4^L3OXHSEU/-XOV\GU??7RG^"8UG*]_P<K1T_4,/JZ<5>[X^_
  1267. M_"?_]6)OB#U:V,./C\IU>&[CYY5:G))`-2Q]3+W8NVW]'G#M;R@]T.E:J0<=
  1268. M5=M6J4M_AJ2`QG9):FP;6$F5%S&?KTA=Q5$^_X,IQ]P,PI2B5Q</7VG<R+ID
  1269. M8SX^'[TZ.+5I:GWY#Y$)/J^=/\OG11>??DJLV#,:/?':7/1J+;HU;"JMIR96
  1270. MBTL7\/443B]++_&(K?P3NJ7#M\&\[-OY#\*\[+8N[-O^$\ST;HINF2O6E9[^
  1271. M-&+<W?7MW`_D*9A<GMKY+R&'TMXHO3';HQ2W/S28&*#R_Q&DN`>FS:5/?P;\
  1272. M%^ZQK??A0F#=?3L5J/#%%Q,%#.+]T9+]*<QQG\.HOH@,KJNNV'"1,3R:;T&3
  1273. M[GJI>$E.WSED@42<XBTF/S36G]%A[G:\S]?\%ZH4Q&IA`O_BLQB#49:#<[=3
  1274. M89ZE@GH)QE/87A%DL!R&+N`S#S<M`D\?_$/;>`KZ`DM_.7MY,\Z0<<QTYO!M
  1275. MIP^_?N;PEM.'KS9^861S"6B^N?[YTGM*7Z.1E'+A1YM/?0^"+=9_K?$OHJ]?
  1276. M>+6N_ODST:M-M-:(H'.'-^.J%'S]H*;^.Z4':^;U\B/_W+*>-3=2=R:Z>0*B
  1277. MN_"]S25/0VW3?Z?0=:4]-5)W).\_-"JO..KG2,.%[V\NC5R!*CH??;-QW1;!
  1278. MGRKX;Y;]<8D>W)3&+_2_6?)`%97XP>=O>4U=4!:4S_M?NXN>-?RYCC\7^?.6
  1279. MUSY+S\[7SM%S/7^NX\]%]K2OKQCXZ]SQ^\_;\&?=\0.<*W[,7W_=["\V/;GU
  1280. M8O0JK1A$K_[=75NC5U^[RT'?V0M7+D:O,*`K?W?N]/-;1ZZ<?NFU<Y;U-P,?
  1281. MK5Y\Z]42XCO]O&?D*H#>98D?\!E`A,]CXN/CA\2_PD;UK=>0F]<D_A@_7F0?
  1282. MS_T*AX-OW'_B?RS\T*RO#/Y9#O^_XL>G*\);+$(J-K.1BIN)2<6T1*F89BH5
  1283. MIRU+Q6;U4G$QD*DXK&DJ2YC@5&23G8J;;4_%:@94839"%30;JIC61)6!_OV*
  1284. MS?RH8C52"H0Q3^?@<2`]WN918LP,$1X-RF/F/`H:+$ARVQX>900(H^)A=[1/
  1285. MY%'V91"2],*C;"+@R60]BN<!;K\J@<<]V]H`;W\LF]7C_*@.AJ53^XD3^>0X
  1286. MD)1;SF(X484^US3>@B?;T)!67DT#$?1TICB9$.=]4OI$`4_R\23K*NI#1Z7[
  1287. M1BYT/!8+Z'F`S(2P%L)41C-8TM@_D=,A1U$L?;60.\$53,=U`W<ZDT;MI6.9
  1288. M(AX)2AI9X9::5HP&B40EI.<L888-Z&(:3XYS[.S<(L\^N/,P0$VLF`:5TAF5
  1289. MJ3@DFIC%RK$`5A3]-\C-G;'8H&B.L!/%$D+(5$&?SA:,%$U;#0T8J8JEL(!/
  1290. MJ'Y.<B!+D-'5H(MP#]O<L6""5+'PJT\WBTQ@.)8L)(3Z)"RZIK@5+KP$7+71
  1291. M5VCT4.^OY=^#(C31W0^K.U6RLA/=8[[VFJ]][)5![QDTW(>DU_TF]'X.'16G
  1292. M?I@%GU[C-;I_D(/TF=Y1\U4*M'>(0Y(2Y)6#3P)]45V$.!6J`-MR6J!O)A/T
  1293. MKE[<Q]5<G.QLFG/S**:=+'A?B5DL8+_79N6*^/4U6JGR*-=A8PH"7:>!*(]R
  1294. MW9:=&`67,X?A498U5N%1DND\M`ORT3Q*J[(#QPIG[E1F/@J_H_`[`K\)^(W"
  1295. M;Q!^/?!K@]^[X:?`[_(=RLS_"[^OPN_+\/LS^/W/\/LD_&;@)R2>4*I%F;E)
  1296. M47[O)L6O!8*A<$>DLRLV-A[7)YZ\2YG)P.\(_!Z%WR/P&X9?%'Y^^-T-OTWP
  1297. M^^^J,O,]^'T3?E^&WY_![W/P^Y_@-PN_HLJF#"3/MJ^WMUOU[AL8\:F!MDA;
  1298. MH"WXCG>KX[1"FOFU-K^F*.]X-Z4M?V(:^D-X%G+LF1!O>'1):<ME4#&/TL;N
  1299. M8_F\TC:>F4;.K[1!?WX-9V`_P./>J!@R<8IRA^DO1.+NXG"XPC;#ZJ'BJS/A
  1300. M1)WT\7>8<2K_!PR?X:=\18JOAC_;>=X1#H65X*?X?<YX0Q)NA<$J?RY]"[^=
  1301. M"I?A4YC_MGO<X6[A<8KK%8#K=8&K7N_\B\O_II)C[3<L#C6TE/PO<R3YWV#(
  1302. MWQ'`\Y^:%M(4-7S#4B1=O^7ROU+YC^<*_M57_JTL?_X_$-(,^6]_1P?J_PL$
  1303. M`U7Y[[6X3-7>_&`9Z?=N;Z<I58:T[`@5-J0OQ-#FXF5Z^N,XGT7:D+(YH;LJ
  1304. MF;;J[^<Z163=K!`%FG9B6"TXT)=0_`:JVWS'75+[%Q5@K?7_J\%(V-#_$23]
  1305. MGT%_*%AM_VMQ56S_I!@LR12!9=),S18ID02X@CZMTLFF<69C+76B#8/L+Y!K
  1306. M7E+F%`A0P&PLGV<JM&)B?4WUPMS91RN$:$0EF9Y$%&SM2JCN(B4@>ISQD$Q^
  1307. ME.N]XLJ^62C!3TBG'ZX7;?,?#P30DBCJY4.#FL*^"7CZ>%0^I@CY[2;^.^!R
  1308. M:?]KK?\7U?V9[3_(VW_5_MN:7(;^WZ%_.M2[^\`!606PZ;1T"S154[8W2Z%0
  1309. MO^K;G;WJM<PEM?\;H_Q368'^+[/_]W=$</P/HX"J_J\UN9;2_SDAM''2H6!R
  1310. MHE%Z2C^JI]3,V!0$8D"H*%/6`HH*EID:T+Q=76<QC_M67`^HT`#*=HD`-IF*
  1311. MY3PY_;$BI(@IZHZYJ!XUE7+R]+)IR,K5<^*%'A8]IPX,'C8C=H14U5Y!IGRA
  1312. M.,9F+<;HN2(L124-GL14R@CJ4)UXOUT7I17#:G!7J?W?&.5_R@KF_X&(.?\/
  1313. MATG_?U7_U]I<7/^7*'N;!C!_4-6T[G!7-VH@MVD`LRH%Y.H`J<5DA)(:U,YW
  1314. M71KPJN.&M;IX^\?:?<,6@*]C_3<8KJ[_KLDEES]3M;SZ<2R__ALP]7]@7P"/
  1315. M<'7\MR:7^_J/;1G7\S&[-=MDBSK%;"EYQE)D\UZ:'&XE,;2"$"_;RDPMUL,(
  1316. MQIN$_L+?HR;5>]4`M^4`7SMV^#SU]5/DYZF?S."0$["2*:AJ5W!#+[G]WZ@)
  1317. MX'+M/Q3R&_._2`3;?S!4G?^MS55I_D?S-ITIVL?Y#<T_8O+\CPO,M7GV%\0L
  1318. M#^5+\[3@R]:!Y=E.NC@]!F$#`;[&FRWBY(ZOQZH0;<:#TQO.0Z[3\D*O84)"
  1319. MGM;1&C,S]^!B3L`Z/[-E^S>>^\CM_T9-`)=M_QU^L_]'\UNH_[FZ_KLFET.U
  1320. M>UL;+@;PZ1RUELJZW0UO4[.[<.I6&:)V/B,D]XQP-.>'3D7M`:&E7<:^,DQ"
  1321. M@[L1<A=[E;2W"Z_JQ)1=O/W?L+5?O)9I_YH6YNL_\!_N(/N/87^U_:_))6_S
  1322. MDBB&V<F*%4=617BWC0=%H/>E]=;!1`YE[>\.!WAW;89EMF>*['`(+>&F4IEC
  1323. M>>BTQX#.:JNT@LJ-3&5PG3,'W2Z4QZ1A+XF@Z?A+#H+2,K04EOKT)!JGRF6F
  1324. MV2IU7MB#J!"'D4\&Y?$`$W$!-88\TH`'(',4'02B%,GA)E*9;/8$3ZJ,!29)
  1325. M:,N]E5\LCU)`:P@[&3A:F0Q6?'D=1DR,*(5T!80<IB)&#V522I.4:9D>!<9\
  1326. M#=(=U7/^-DT.F,DE)Z%,4FXEHP+L;QS[_+6_./]G%M!N4!PK7O\+1()!FO]I
  1327. M87^DNOZW%I>E_/<</#B,IF=6.8ZE]?^J'7YA_SD8\H=I_S<0\5?M/Z[)55G_
  1328. M[SHZ-]#"#P0(_;_URD9)OG\=_?P;P7_3=>O_G8O6#9:WU*)NV(WKE,67##UJ
  1329. M-V^![U,7/@M@I9OO@/=SZ,!TWUXX=L_9<^AFZMJU0=#WT>\*+*2RUHDE@CI[
  1330. MT95TXN++W.V$MK8![JB4UA7M7W-=1*AK%P%-7;L(^2S":%]='J]0MOM?+M9N
  1331. MWLC(>K'V-GACRG8IY5S9+J&PZ$PB';M/8UGU>(H;>A="/(8-I]?W5HYRD6*:
  1332. MW8GWP>*7S(AG=U+$Q?KR#*K7K9OO6*2DG,.;T*V+P*A;U\CEI:.HO.BHH8;3
  1333. MH4_7#T#E=RGB[3ZN3[>2'MT/<3VZ$:Y'MYWIT9WI!#\5WF<ZFQJ?V0`O]Y5(
  1334. MBVX#O)[9;%6A^\HZ4J'[ZOIURME"S3KE\RO\G=T`"=RP<GC[+\[#;I;<_@C<
  1335. M3)VT;S0^/4@Z<\LSW9"A/G@_XSE]TY[22+EW8.%5H*--7^Y=`'&6=.3^M2(I
  1336. MMY5TY(Z49[_?>.:,BL4=O7RZ88M=1^[?(F"'H6?VF9=/WOKS[\`+UXM['KP7
  1337. MWGV6:;9=J)>CJ*@/MV9Y?;@IFS[<CYCZ<#^,.G`W:6\LW`\P;OIO,2^2_EOZ
  1338. M9/IOWV/JO[UIOH/I5S:UW_Z-7?LMTS_AU'_[I%7_[3G_IG5*$ZIQF3^MO+2X
  1339. MJ+T\WW&QYE/8*$HO77BUH?3"S-<WE#[S*>1MLV]ZGKRU%GE=PX;2TZ35=>%=
  1340. M$,]%]HX7UZ[TQ%_.4XB9KVTHW3)_BI2H;"B=(B4J7T>$__IG,.`J?>H*WD]=
  1341. MA7OCUF\WJN=OQA;=N/6\4'I#>:!V<K$6$XK:?\JW8]I>'"KOQ.;T^KQ^A>OL
  1342. MZ"!]3U_](BJ8U,Y#V!=K/+?,_[,-I3LQ*.F8//4\W=\D59.O\ECHW-I*SD2N
  1343. MR=D]^QG$U7-9]E2@=!J0#@$:9P*OX;*>!UQ'AS\_7FOZB_-[XCP@GJ7#KJ\.
  1344. M`G@5)]QVQ3SGATST_V_O;(#BJ.X`_H[/Y#((&@>U4;L2K$8]<E^`@XD2+V"B
  1345. M?%P"T8V2`KD/(#DXY"/%UH[,,*,F.)AQVAFUU@%-:\QDIJA,BPTU=!(SJ<(4
  1346. M:^SHI).F$\V08CNISL1\.*'O_][N[0=[=Y!<@,#_/_.XVWUOW^Y][-[N\OZ_
  1347. M'_S>)I@FMKN'*/E[A+4E1.URD!>Q$VV.WB]HN\<-VNGS_/Y+V]UGT$[.:0SU
  1348. M1S>V-XYO\Q)I^^"T8*&N/V`(GC7H+U+$ZUK%:]8,T_&ZZ03==*)N.DDWG:R;
  1349. M7J!98P+YWSB\KG;5J[_!H/YE5?T/Z5_X"4Y@4W$DDSZFJ:;A\[U>-7T7?;Q1
  1350. M-0W[Q,VJZ1RI_UT$WG<3><!@_>XX9?UK"/_>\$V*)R4&[=M4[3?2OW#039/6
  1351. M5V70GB0J[?WT[PIZ#DG/4\AU=#I('X_3+Z@@3;?1QV3I+.-:NOPS]+&(MJ^5
  1352. MZK=+[^<-TC1P+7?1_N^2IE^7MU]:?@]][*/+_TJJ?T_:?E\<G]XO;5^/5/^1
  1353. M;OE/I/?G3JG^"P+GKTH]4#KA<,F_M_'D)'T<H?WE2NWAAVJ!]'E<"]\_KE<F
  1354. M-1Z/O5(:TNC-(I+DFU2WM#21QC;2^!1I]C3Y?`VD,=C<`,^#@4!K(Y$]TF1K
  1355. MX^96/PFY3SVDUM=67]U(F(89NJMD7<D-2*6/';.@`FYF-Q&>9D6V@@BYLMA7
  1356. M7UQ3WT(J*^G13*J!IO"/-[*MNC+4#6\.M`[:(SO^;0VMH,%+&J"CZC:&-O$$
  1357. M6^FA<*O4&\;5'YKK?_F?(S%>1Y3K?YO#IK[_P_RO=LS_F)X(?_T?QZ[_GY>J
  1358. MC/T_<:P4T>=0+O'Z?Q1^3]2\L0&P]P#/%(B."=O/Y*]D^IVS8U\Q'CJ]YA[.
  1359. M8.?NFF%&9,88%S/'FHACG\,*5;T1:P+>SP'ZF*IJ9\2:&*+MAG3K,V)-1&JG
  1360. M9TT,Z;;/B#4!]0M,QNWTYZ!PR8RLB=B%YOBOJ,UCNHYH_C>KU:D__F?G8O[O
  1361. MM$0T_]O!'_'YD?QO`_2"YG1Q;/QO/JW_;1/XW]:`_^VG&O_;ASK_VPL&_C=3
  1362. M>LC_=DCM?WLUY'_['?C?'@;_V]MJ_]O^*/ZWD4S%_W8D4^=_@QG*/6F88NVE
  1363. MF\<PO>VHU`/WOZE[<.YDR[-[QO"DD]7V')3\:(:]&?K?#FK\;[#(F]#8]I>H
  1364. M_:O\;X=#_K>A3-G_!EW)MZ19#U/UO\%"S/\69OWC;+4=*P_+_C=Y*WI@(PS\
  1365. M;S";U<GWJ`]+_K?0JYZ2_RT_Y'_+1__;[/"_?9XYO_QO\'I5][_9Y)7UO[DU
  1366. M_K=2C?\MC_O?''K_6T;B!/];:B+SOX&X:4O3J"F1^=_.<__;M]S_]C7WOWW%
  1367. M_6_'0OZW(]S_-@R*-]B:3LY59QJX_HDS\]VC;TR<RZ1P.PRZJ/T;'-+3%%V)
  1368. M^G@URWQQ;@-?W%>P^>MFGR\N#=1H[QOYXLHDZ=IKL]H7Q[;_W#FM+T[>]'^=
  1369. MF[0OKE/MBWL&.MT5R1=W2.6+.P^MM\TB7YQ[YGQQ66`8VQ(+7YP[K"_.K?CB
  1370. MVF%U%[Z[/%^<^Y)\<>XHOCAW1%]<^91\<8?@95ZO]\4=@[D7SQCZXL[(_C>M
  1371. M+RX!#&X?&_CB6%_OZGUQ;+VOZ7UQ]T`GSVI\<6Q6L]X7Q]:V"7UQ1KXX4?'%
  1372. MO<M\<:*Q+VX_]\6)BB_N#]P7I[3G]C8BS9%]<9]R7YRH^.*.<E^<J/CB3G!?
  1373. MG*CQQ8UQ7YRH^.*^Y;XX4?'%7>"^.%'CBXM/8;XX4?'%+4IAOCA1\<4M3F&^
  1374. M.%'CB[LQA?GB1,47QUQMBZ0YS!>7D<)\<:+&%W='"O/%B8HO[IX4YHL3%5^<
  1375. MC?OB1(TOKH#[XD3%%[>6^^)$Q1=7S'UQHL87MX[[XD3%%[>!^^)$Q1>WD?OB
  1376. M1(TO;A/WQ8F*+ZZ:^^)$Q1?GX[XX4>.+J^.^.%'QQ=5S7YRH^.*>Y+XX4>.+
  1377. M:^6^.%'QQ3W%?7&BXHO[.??%B1-]<2+ZXF+@BZL'>=L3,??%O0[=)AC[XH:@
  1378. M;O2TVA=W'F9]=OHR?7&W@%3K1=D75QO!%_<0M/1%\L5M@Q:N"+XX9S1?W-_!
  1379. M"O<<=%,D^^)<W!<W$*JQ3](7MX/[W48SF=]M.RSZUN7XXO(T_>V"_AZ;FB_N
  1380. M7LD7=^]E^>)JH_GBJG2^N%KFB_-.],553/#%!9@OKFIJOCCWY?KB`@:^N"J5
  1381. M+^X#>*_'_C-Y7UP%\\5]!HOU@2^N(H(OKB*J+ZXBLB^N(JHOKB*R+Z["T!=7
  1382. M$<87-P:OZMC7!KZX[Z#FH)$O[E80NNT)ZXLKA>I.(U]<!]0\&<T7UP^M'@GO
  1383. MB_L&ZN^>Y[ZXBAGUQ06FTQ=7J_/%64`U=;?BBPM$]\65P2)G3T7UQ<&J_E@[
  1384. M25^<5^V+DX^'H?O57N:+\ZI]<;6R+ZY6YXNKF.B+JT5?'/KB9J<O#K5.L\'E
  1385. MIC*!R6(CU+NAW@WU;C-_'$"]&^K=4._&N+6/WD+:"VEYD)9<6NRTW$W+S;0D
  1386. MTW+^9M)^C)8A6OIIV4W++VG90<LSM&RAY7%:BB;I<OOQ;:2]A):':7F`ECQ:
  1387. M'+1DTI)*2QPM)P72?H2605IZ:?DU+2_1\APM3;1LIJ5<[7*#F$6>MJO1W3;3
  1388. MGK:A)4J]T=C9(OX=(W=%\;2UT0O)MDEXVF!04?XD/6W0KELU;31V%NJ/AVFG
  1389. M'SO;CIXV#%UHQO_6!*_(.J+D?P@VNS+^U\KXOW9K;@Z._YV.H*=)0N':]66,
  1390. M^R&4%;A*2U:SIS(+1"@KWU!8R)Z%L&ILEIW-4X:,"_<#/6TN,M+F<FCV?_[Y
  1391. MQ7P=D?EO#D=.CI[_8\\%_C?N_U<^HO%?CH3AO[03.;?=1-STA*I<XK],<?A_
  1392. MB/_2!_R7W0K_13T^.Z5?Q8$9`"1)OY8#,Z#AP.A:L&G@P/2K.#`3>F$<F`&9
  1393. MUS+`X"FLV\2]$CS%L-LA@_^OPOC[O1HF#"SUY@!GPD1=AXH)TQMBPO2%F##]
  1394. M*B;,@,*$T8VG"(V_!S;,(M?8"KE>6B-GQ(3;A'&VYHZ5O8P1\YZR(1TK^R1&
  1395. MC)<Q8K:?&6>;UM.G8L3T2HR8T*N>TOC[$:#$L/'W[-EDQ]]W2N/O.Z3Q]S]3
  1396. M<6,",C>F5.'&B`;<&($/O1?BZ6<GW^\^G6`BUL3)E>-T0?<4VNM+;SQ_;%?U
  1397. M`:`'H_'WC"7SO$EAR3QMTK%D^/NM&W^_(>+X^S!LF<&P;)EDP_'WAIR9?Q`^
  1398. M_IYS9C3C[V/`FTE]\6EIFU5C\`/*&/SJT/JD\??N"./O![7\F4&%/_,#9?Q]
  1399. M*G\;]0R:Y_4C\`W&5TP8CW^'CD<SHN?1;#\3B4>S1,>C25?]_\^`2],7&RY-
  1400. MZ'@CL6E&9#;-382S:6PZ-DUHO+LAGV8D-GR:N7)/94JDFIC<#^&<FCM4.!3]
  1401. M_1"XEP`_T;LGP:F!@_=(!$Z-^M[#2!A.#?`?Y?L<4`^,.:-V^OL<+R=/CE.S
  1402. M8N'D.#5?3X%3(W-A9$[-[B1YFJ]Y)#1MS*GQAJ:GAU/3K>/4[-5Q:GIUG)H^
  1403. M':>F7\>I&=!Q:KJC<&K:=9R:$8E38PK#J>G5<6H&HW!J=NHX-6X=IZ8Q4<NI
  1404. M>4O'J:F*PJG)3])R:D94RP.G9H0N_Q91.#6P_>^H.#6P?6\3A5.C7OX3Z?U1
  1405. M<VJ.Z#@U(\DRAX9S:AJ3M)R:W<BI0<8%,B[F!.,"<_4Q5Q]S]3%7'W/U,5<?
  1406. M<_4Q5Q]S]3%7'W/U,5<?<_7G?J[^B3<P5Q]S]3%7'W/U,5<?<_4Q5Q]S]3%7
  1407. M'W/U,5<?<_4Q5Q]S]3%7'W/U,5<?<_4Q5Q]S]3%7'W/U,5<?<_4Q5U_>?@C,
  1408. MU3<.*?^3_KY:LVS+K\PZ!&?D_&^8R?,_;=FYD`MJLSEM#B)D7YG-T<8\S__4
  1409. M?OYPDEKORVIIBZG<,W+^KR#8LYVASS_;F0W^+V>N'?-_IR/*:^D//3UMH*?L
  1410. M<*7C"3:TT`M@N&`)T&L$H?XIH3Y(SP8\K4U-<"+.\L2;H0;.%K;1"[Q@:[.P
  1411. MN:X!+O6:S4V^)UMI7U[!#]=UM$6P.4N@%[P^"0T@^.OH59&'GDYNIA='377T
  1412. MZJF!79D*_D"PL1$NP,SUU5OIU3"]@`SR:ZA@LU!73Z\SLI`K<`5"N__+T(?8
  1413. MKB/*_I_C<*KV?X<#\O]S;$[<_Z<C,/\?\_\Q_Q_S_S'_'_/_,?]_]MRGP?Q_
  1414. MS/_7UF/^/^;_8_[_I>3_8X0/[?6_0G.,Y3HB7__;G5:KPO]T6G/@_E^V-1NO
  1415. M_Z<CD"F`3`%D"B!3`)D"R!1`I@`R!9`I@$P!9`H@4P"9`G.?*<#:(U,`F0+(
  1416. M%$"F`#(%D"F`3`%D"B!3`)D"R!1`I@`R!9`I@$P!9`H@4P"9`L@40*8`,@60
  1417. M*8!,`60*Q'@>,@7F'E,`X^H)[?A?V?`>VW5$R?^U.6Q67?ZOPY:-^;_3$NC&
  1418. M0S>>_!MV-;OQ,"XMM,?_LO(-A84Q!T!$X[\X'0K_(<=A`_Y#KLV&Q__I"`$C
  1419. M7,P+WHS!_F^/]0$@ZOZ?JYS_Y63GPOF?U>K`_7\Z8B9VK#D0<^;8H-W_:X)7
  1420. M8AUT_X_(_[/9E=__7*<=9ECM5MS_IR,\U2U"X=KU90S[)905N$I+5K.G,@I,
  1421. M")T3"O+=`4'YF1"4C&'A?@GR-F?VC?D0VOT_]$V(Z3JBW?^Q6E7\SVQ^_F]'
  1422. M_N.TQ"D_V;FFNBW85%IF(W$F$XD[3O(7G5Y(KM.@4I;ETPOM]6M=:Z3/K'!5
  1423. MN8T>J`76IHKC.@B[^Y!,V/XOP*T'-N:MD4V0\_UD9]?(`&F'QT''>/]@<M?G
  1424. MCC/OD[AO=]%9[OXNXO[XPH[TVXEC<'AQ4_RI%+(OF?1=T^L83AM.'[[I@]^8
  1425. M1C\CG=<\0#K35Y$>%^D:[+RU@'0_1-ZH(:-5M&8MZ3A'6LH[TQ\A/<6LNI1T
  1426. MKV/5JVAU&:O.[DS?0'H>8]4;2?<3K#J#5F]BU>F=Z96DIYI5>TBWCU7'DU-;
  1427. MR+KUO::^.,?1X<6/;VS_GK0LXEM7,)PV]F5W#;EXF+9<05KL+QSH."!T';CX
  1428. MY_9SBUL_:K](6I/>,?W>-+:_\XO!L:1G+W0<,#U[8?!$4N?'=#:Y^.'8;P_L
  1429. M-0^V+.R[AG9(._OF`.\X9SB-ODAW3P%]6U+,1<%J;UU##=D9V]BP1W?^'SK^
  1430. MQ_([-K7]GY__(_]Q>H)_V58-I[UPN.OSKL'SHPGDPJG;R&@J:5W2^\E)[V@2
  1431. M:;VN]Y\GJ_SOPQX]1K[T[HX[?E;ZDCXXG):5:DI_A9Q/%0;]'8=-J1F#8\3_
  1432. M[PJ21!:0?7`STM]UU-]UP-]UPM\UM@_^.WLH_O9#+E/R(5<<+?'>?3>R1I_V
  1433. M?S^^@&P_Z-X'A)WQ3_\T/OX*N\D)&03DU;_RQY>4QRNV3\RGT.___`0NUM^Q
  1434. MR/N_(U?#?[&Q\_\<9R[N_],1^/L_OW__\?@_GV/#'N0_(_\9^<_(?T;^,_*?
  1435. MD?\\>\;4(O\9^<_:>N0_(_\9^<^7PG^^G'_TS_$PX_A?'/\[%\;_SO!^=+5&
  1436. MA/T?^=_(_T;^-_*_D?^-_&_D?R/_&_G?R/]&_C?ROY'_C?QOY'\C_QOYW\C_
  1437. M1OXW\K^1_XW\;^1_(_\;^=_(_T;^-_*_D?N+_&_D?R/_&X\#R/\.UQSYW\C_
  1438. M1O[W7,E5N#K'3B+_.U(>`\;\"(G_4%R]U>>O"TQA9YI"1.._.',5_ILS%_@O
  1439. M]`GRGZ8EEKJ:@LW-%IX-4LW.KQJ;Z%>!GOTL=:\O*%P+)Y=UCGMS+*T-6QN"
  1440. M/VFP^`)^"ZTK+2OGE;3.;':YZ+/,._D2RVH\'OJ<MUAF7LHJ`QZ/8"D1+&N7
  1441. MMS8W+8?SL\#R0-WFY72^Q9EE75[7X`FT>GWFHM7JG@)>54<EQ>JJAGI555FY
  1442. MNHK^@-0UJFI7K5?75C>IJER%M,I2:C<OM?A;&R#3Q0)7ULV"Q1^LKVNQ^)NJ
  1443. MZWT6^:+1;"XH>90NX'*MS,B\T^5:EB$4K8:G1:OITY)B>%I23)^6E</3LG+Z
  1444. MU%7(VA8NRS";Z?53'KV,I6>_\MV`NLT"?+/,9IB;ER>8%^;[/+5!(2-#>6JQ
  1445. M6/A"%EUDT"8>+Z^[C[[`XE6/%"RCCW0CEYG-?!5Y>4J7FAZE+3#L4:J;V"?=
  1446. MWK`=PFO1;Z'<(=1-[`U>>=CNH-)XZUC-Q-X@MZ@AS_`M855A7IJJ3KN5J@K=
  1447. M&GD-<@XQ,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`P,#!F//X/>T-0
  1448. %]0`@`P`Q
  1449. `
  1450. end
  1451. <-->
  1452. ----[  EOF
  1453.